2007年9月25日星期二

【极其BT】小龙女到底几天换一次内衣??

看了新版神雕侠侣,很漂亮啊,小龙女尤其漂亮。因此非常关心小龙女的一切,不禁沉入到剧情之中,设身处地为她牵挂。
  
  可是有几个问题,我就是想不通,怎么都想不通。
  
  小龙女每次出门,都是空手骑马,然后打架的时候手中就有了剑,招蜜蜂的时候就有了蜂王浆,给杨过补衣服的时候就有了针线包,东西是从哪里来的呢?
  
  还有,就算她风餐露宿,不需要过多的行李,可早上起来,总得洗脸刷牙梳头吧?她用什么呢?如果小龙女不刷牙的话。
  

  。。。
  
  还有,小龙女为了保持冰清玉洁,总还要经常洗澡吧?就算不天天洗。可是她什么行李不带,洗澡用什么香皂,什么毛巾呢?难道在风景如画的江湖中晾干?
  
  还有,小龙女身上一分钱没有,她行走江湖这么多日,到底靠什么为生呢?
  
  就算她长得漂亮,可以白吃,那么她时不时换上另一套新款的白裙子,还有配套的蝴蝶结之类的装饰物,钱从何来?难道也是白送的?
  
  并且她空手行走,旧衣服放哪里了呢?都是一次性,穿过就扔?
  
  就算一次性的,穿过就扔,那内衣呢?小龙女不随身携带几件内衣更换吗?
  
  就算全部一次性的,需要穿的时候就去买,那她能天天上街买内衣?
  
  如果她不是天天上街买内衣,那就是说有时候是几天才换一次内衣?
  
  如果小龙女几天才换一次内衣,那小龙女还是冰清玉洁的么?
  
  真的想不通,我快被这些问题搞疯了。
  
  
  小龙女到底几天换一次内衣??

【BT】想不到,初中英语课本里竟隐藏着惊人秘密

今天看到一个帖子是关于初中英语教材的,我无比惊喜的发现,竟然狂多人都跟我曾经有过共识,就是Jim喜欢Han Meimei,LiLei也喜欢Han Meimie,但是Lucy喜欢Lilei。我的证据就是有一课,我记得很清楚,"Can I borrow your ruler?"韩美美和李雷坐在第一排,韩美美问李雷借尺子,然后Jim在后面看着他们,眼神十分诡异,就是夹杂着嫉妒,羡慕阴险的目光```然后他旁边坐着Lucy,低着头,我当时觉得是因为Lucy不愿意看到面前的这一幕,因为是女生,不可能象Jim这么感情外露的```所以委屈的低下头```我当时还和我同桌讨论了半天。  


关于初中英语课本的误区,我一直觉得Miss Gao和Jim Green他爸有一腿,然后LiLei在第一次去Jim他家见到Jim的妹妹Kate Green的时候就心怀不轨```反正我一直特讨厌李雷,觉得此男猥琐虚伪的要命。还有Jim家貌似很有钱的样子,回英国过圣诞节做飞机,家里还有苹果树```对了又想起来一个证据,有一次他们好像学农去摘苹果,韩美美爬在梯子上,Jim就很紧张的在下面喊Be careful!可是韩美美长了一副那种妇女干部的样子,我也不太喜欢。Lucy和Lily里面我比较喜欢Lily。总觉得lily比较单纯,不像lucy那么有心机。(事实证明是我比较有心机```初中英语课本能联想这么多```)  


比较诡异的还有那个什么Uncle Wang,创造了一个什么可以飞的自行车,还有一个合成词叫什么来着?觉得他真是科学怪人。。。最最诡异的是有一个电话号码,6098724,是一个对话里面的,我一直记着,而且脱口就出。。。结果不幸在天涯看到竟然有人和我一样对这个号码念念不忘。。。  


脱口而出的还有:How are you? Fine, thank you ,and you? Im fine too. 我这个土人一直到现在见了人还老忍不住来这一套```觉得不这样简直没法外国人展开交流```印象比较深的还有李雷和jim玩飞盘那次,jim把李雷的头给砸了,当时觉得jim是成心这么做的,因为这个事情发生在借尺子事件没多久之后。  


Li Lei,Han Meimei,和Jim Green缠绵悱恻的爱情故事  


这多少让80年代生人有无限的遐思,初中时代的美好回忆又如画卷般展现在了我的眼前。在回忆往昔的时候,我总是很惊叹人民教育出版社的叔叔阿姨们还有那位专到中国来编英语教材的Alexander先生,怎么会起了几个如此经典的名字,让几千万甚至上亿的中国学生反复传诵至今。  


读初中时已然有了点朦胧的男女意识,从那时的观点看来,我就觉得英语课本讲述的就是一个缠绵悱恻的爱情故事:HanMeimei是一个美丽大方聪明漂亮的女孩子,而LiLei和Jim,一中一洋;一个帅气活泼,一个潇洒不羁;少女情怀,谁人可知,据我分析小Han是有可能对LiLei芳心暗许了,而另一方面Jim对韩MM又情根深重,无法自拔。  


这是有实例为证的:当年韩MM课外劳动摘苹果,和树下的李帅哥眉来眼去有点得意忘形了,此时被冷落一边的Jim大叫一声:"Be careful!"由此,关爱之情可见一斑。而韩MM除了简单报以"Thank you"之外,居然又自得其乐地跟李帅哥开始了聊天……  




事情的发展峰回路转,初一下学期,班上转来了两位可爱的加拿大双胞胎——Lucy和Lily,LiLei从此移情别恋,离开了韩MM。综观整个初一下学期,课本上的对话确实以LiLei和双胞胎为主角的居多。此时的韩MM,方才发现了在身边已然默默注视自己有一个学期之久的Jim,从此二人携手走向了幸福的未来```    


感谢岁月,感谢生活,也感谢人的记忆,能让我们总记得一些美好的过去,忘掉当下的一些不快,并能走向幸福的未来(就像Han Meimei和Jim一样)```  


Li Lei 和 Jim Green的故事  


LiLei,被翻译成李雷,中国男孩,平头短发,喜穿浅色T恤,一看就是那种正统的中国式好学生。不过他并不是那种死板的书呆子,他很喜欢玩,记得有一课里,他拿着球去玩,反而是Jim没做完功课,被关在家里。这种动静结合的性格,使得他在哪儿都吃香,既能和LinTao这样好学的人成为莫逆,也能和Jim这样好动的人成为死party。  


Jim Green,全名是James Allen Green,被翻译成吉姆·格林(詹姆斯·艾伦·格林),在中国生活的英国孩子,一头棕色的卷发,喜欢穿深色的T恤,给人的印象是有活力、聪明,但是有些马虎,时常犯些小错误。  


这一中一英两个男孩,就是这六本英文课本最主要的角色了。那么,他们中,谁是最大的男主角呢?我一直是比较欣赏Li Lei的(或许也是因为他是中国人?),和很多同学一样认为他是第一男主角。  


后来,我做了一件极其无聊的事——统计了六本书里每个人出现的次数!  


最终结果,Jim的出现次数略高于Li Lei。呵呵,这毕竟是英语课本,就承认Jim的第一男主角地位吧。  


7+8:统计的数据我现在没有,不过我还能记得最前面的那些孩子。最重要的七个同学组成了第一集团:Jim Green  


Li Lei  


Han Meimei  


Kate Green  


Lucy King  


Lily King  


Ann Read  


接下来的第二集团是八位同学:  


Lin Tao  


Wei Hua  


Ling Feng  


Sam  


Bill  


Bruce  


Mary  


Tom Read  


说明一下,Tom的出镜率很低,但是出来的时候文章一般都比较长,何况他是Ann的兄弟,第一册第一张彩页上露脸的人,所以放第二集团不过份。说一下第一册第一张彩页吧,我总觉得这有一种英雄排座次的作用。上面有四幅图,三幅是三个家族:Green家族(英国人)、King家族(美国人)、Read家族(加拿大人),每幅都是父母和两个孩子一共四人。第一幅图则是五人:Li Lei、Han Meimei和LinTao,外加老师Miss Gao(Gao Hui)和Uncle Wang。在这张彩页上,第一集团的七人全部在。  


Green家族在书中风光无限,露脸机会最多,而且鸡犬升天,连鹦鹉Polly和小猫Mimi(这可是中国猫)都能频频上镜。  


相比之下,Read家族就比较惨了,只有一个Ann撑场面,Tom身为彩页上九个孩子之一,在书中几乎消失,真是够郁闷的。  


重要人物:Han Meimei  


如果说谁是第一男主角还存在争议的话,第一女主角就当仁不让的是Han Meimei。这个齐耳短发的中国女孩,文雅温和,智慧善良,几乎是所有女性美德的化身。在书中,她更像是一个姐姐的身份,帮助同学们排忧解难。  


很多人都觉得,Li Lei和Han Meimei天生一对。然而我经过统计发现,其实HanMeimei和Jim一起出现的时候更多,尤其是后期。想想也是,排除国际友谊因素,Han Meimei和LiLei的性格是相似的,而跟Jim却是互补的,更适合在一起。  


Kate  


Kate Green,Jim的妹妹。和哥哥一样,Kate也是昵称,全称是Catherine(凯瑟琳)。同样是一头棕色卷发(不知怎么,Jim和Kate总让我想起哈里·波特中的罗恩和金妮,Han Meimei则让我想起赫敏)。Kate很活泼可爱,后来戏份也越来越多。我奇怪为啥她不和同年龄的小朋友们玩,要和大几岁的哥哥的朋友们玩。  


Lucy and Lily  


可爱的双胞胎姐妹,来自美国。两个人长得一模一样(美工偷懒,哈)。开始的时候,两人都是同时出现,不过到后来,编者有意扩大她们之间的区别,也经常会单独出镜。  


Ann  


Ann是加拿大人,一头金色长发,标准的西方血统。她和Jim、Lilei他们不在一个班,但是和Han Meimei是好朋友,另外她还有一个中国好朋友Chen Hua(女孩)。  


Ann在书中最重头的一次出场是她的生日,重要人物几乎全部出场参加。从此我知道了Fried Chicken,Fish and Chips这两种食物。不过当时没有概念,直到我们家乡出现了肯德鸡……  


Lin Tao  


作为在彩页上出现的人物,LinTao还是很重要的,不过不知为什么他在很长一段时间内都不出现,硬是被挤到了第二集团。作为书中唯一的眼镜男孩(大人不算),LinTao长着一副睿智的知识分子模样。不过,不要以为他很文弱,初三课本中,他可是参加了运动会接力跑的冠军成员。  


Sam and Bill  


这两个是Jim的死party,沾了不少光。他们三个在一起,1班的体育水平就能提高一个台阶啊。没说的,都是调皮鬼。  


Wei Hua  


Han Meimei的好朋友。我发现L、H、J、A四巨头都有各自的好朋友。Wei Hua又是一个热情贤淑型中国女孩,不过感觉不如Han Meimei成熟。  


Ling Feng  


跟其他中国孩子相比,Ling Feng显得比较成熟而独立。后期他出现的次数很多,但我最记得的还是他第一次出现时候被Jim的飞盘砸中了脑袋……  


Bruce  


澳大利亚男孩,因为在中国看到下雪的圣诞节而欣喜不已。之后他还有多次露面,最有趣的就是和一大群人去猴岛旅游了。  


Mary很晚才出来,又是一个西方式长发美人。我似乎记得她姓Smith。  


其他人……  


除了以上15人之外,还有一些让人记住的同学。比如MaLili,初一初二她都出现了,而且都是喊"起立"的那一个。看来,她就是1班里学号1号的学生了。还有Sun Huimin、Li Ming、LiuMing、Fang Xiaoling、Bob White……等等。  


现在想起来,仿佛他们就是我们当初的同学一样……  


记得最后一课(澳大利亚的那座大石头山)结束后,结束框里就简简单单一句话:Goodbye everyone,Goodluck!我学到这里不禁热泪盈眶……

2007年7月15日星期日

睁一眼闭一眼! 京城传销案媒体为何放葛优一马

葛优出事了!至少理论上是这样!"亿霖传销案"知道不?京城第一传销案,葛优可是代言人……

奇怪的是,自打今年3月事件曝光之后,半年来国内媒体竟没人理葛优的茬儿!相比其他明星代言犯了事的,都没有葛优这么好运气。以郭德纲为例,原本不是什么大事的代言减肥茶,错又不全在你身上,是人家没有搞到广告批号,可一张大嘴的他死活不认错的态度让媒体至今揪着他不放!再看人家葛优,早早道了歉,老老实实退了50万元代言费……风平浪静了……

此外,媒体放过葛优主要还因为"他在圈里的人缘好"――这是记者调访了若干京城娱记得出的结论。尽管被访者都承认"我们不应该,也不会因为一个人的人缘好,就对他犯的错误予以漠视,但不可否认,我们实在不愿意揪着葛优不放。"

同是名人代言广告,而且葛优代言的亿霖木业比郭德纲代言的藏秘排油茶情节要严重,那关心报纸新闻的读者肯定有个疑问:没怎么见着对葛优的报道,倒是对郭德纲的讨伐声一浪高过一浪。这是为什么?

当分析到媒体对两件事截然不同的态度时,一位不愿透露姓名的京城记者表示:"据我统计,在亿霖这事抖落出来后,葛优没有在北京出席过活动,所以我们也无从问起。人家话都撂那儿了,一脸愧疚,你还狠心问'你收了多少钱?跟这事到底有没有关系?'而且人家还主动退了钱,你还能说什么?我特别佩服葛优的危机公关,退还50万比回应100遍都强,言多必失。而且葛优在平时采访中,人也不错,前期做的铺垫好,记者自然就对你好,这个也是人之常情。所以即使葛优的事情再在北京闹起来,我们本着做记者的良知,肯定是要问的,但是不会抓住不放,
葛优也不是特不讲道理的人。谁跟谁都没仇不是?"

《法制晚报》等京城媒体的5位记者还向记者讲述了葛优"好人缘"的例证,她们你一句我一句,还声明道:"我们没拿过葛优一分钱,没吃过他一顿饭,绝对不是酒肉朋友,他出任何事情也一次没跟我们沟通过。我们是比较近距离地接触他的人,就有义务把客观事实说出来。这绝对不是偏袒他,我觉得现在的艺人都该跟葛优学习怎么做人。"

巧妙采访

葛优能记住记者的名字,基本"有求必应"

只要是常见的记者,他都会记住你的名字,而且每次都微笑着示意,让你觉得很亲切,不像某些特别势力的明星,需要你采访时就特别巴结你,表现的跟你特好,事后即使再采访再见面,他也跟不认识你一样。

一般明星发布会之后可能就会在经纪人或者保镖的护送下离开会场了,但是葛优不一样,如果有记者留下来追着他问两句,他真会跟你认真谈,就像拉家常一样,他不是人越多越来风。

当然,有的问题他不愿意答,他也会采取回避的态度,但是不会像大腕那样摆谱儿,让你感觉特丢脸、不好意思。比如一次河北台一个记者让葛优录一段类似"某某节目,我看行!"的VCR,他就觉得是自己给别人做代言的,不能随便录,就给婉拒了。结果那记者又说:要不您给说一句类似"某某节目,我是葛优"的话,葛优也不大愿意,就笑着说"咳,大家谁还不知道我是葛优是吧?"后来实在没办法,那记者非要磨,葛优还是用那种特幽默的方式给化解了,他说: "河北台的观众朋友们你们好,我不是葛优。"

化解矛盾

冯小刚说葛优的性格"怎么点都点不着"  

我们采访冯小刚的时候,他就专门分析过葛优这种性格,他说:"我是一点就着,葛优怎么点都点不着。"葛优还老劝冯小刚跟记者说话别那么冲。因为他本身就是一个特低调的人。像他《活着》得影帝那会儿,冯小刚他们去接机,他就招呼大家不要声张,赶紧回去,自己乐和乐和就得了。

冯小刚说他还专门研究过记者写葛优的文章,比如写的都是"葛优悠闲地摆摆手,摸摸光头"等等,总之是很活泼的报道,其实葛优在里面说的话很少,没多少直接引语。但是记者一写起他来就显得剑拔弩张,冯小刚说他的原则也是"一问三不知",但是如果什么都不说,又觉得让记者白来一趟挺没劲的,结果一张嘴就收不住,给拐沟里去了呵呵。

冯小刚见过的唯一一次葛优的尴尬就是《天下无贼》他骂记者的时候,事情正闹的厉害呢,结果就有一记者问葛优怎么看这事,葛优不能得罪冯小刚,也不能得罪记者,真是急的搓了半天手,不知道怎么回答,突然发现这时候冯小刚就在旁边呢,说:"咳!他不在旁边呢吗?你问他吧!"

幽默性格

拍关节示意记者别"美丽冻人"

葛优特幽默,我们北京几个记者都挺喜欢他的。比如一次《西望长安》彩排时,我去"追星",那时候天还挺冷呢,我穿了条短裙子,葛优就说"美丽冻人啊"!接着就拍关节那块说,这块容易被吹着,言外之意是让注意别着凉。

有一次采访电影《窒息》,我过去跟他说我是《法制晚报》记者,他就说:"法制啊?我以为我犯什么事儿了呢?心里忐忑啊!"

我们几个记者有一习惯,爱跟葛优合影,每次就说:"不好意思,又要跟您合影了。"葛优就说:"合合合,咱每周一合。"特搞笑。反正我们每次有机会都跟他合影,围成一圈再聊两句。

你看我们博客去,全程贴的照片都没有任何跟明星的合影,除了葛优之外。说明他真是很好的一个人,让我们觉得跟他合影挺开心的,不像某些人追明星那样无聊或者疯狂什么的,真是出于真心的喜欢。

友情第一

放弃国际大电影节,参加朋友小活动

葛优这人对朋友特讲义气,人缘特好。那年我们去三亚的金鸡百花电影节,在华谊兄弟公司的一个私人聚会上,我"偷窥"来的。比如人家叫他,他就像他录的那彩铃里的语气说:"人在呢!人在呢!"特有礼貌,不抢风头,不抢话题,就那翘着二郎腿坐着跟朋友聊天。

现在哪个明星不想去国外的电影节亮亮相啊?葛优他真是不怎么看中这些。像那次《夜宴》集体去戛纳去威尼斯,葛优一是怕坐飞机,这个大家都知道。火车他也觉得特倒腾,觉得就去那露一脸,没必要。但是平时朋友的事情他特帮忙。他跟新影联的高经理是好朋友,影院一个特小的见面活动,也就三四家媒体去,那葛优照样去。你想想这个跟国外那个闪光灯云集的电影节比哪个对他的宣传力度大?换别人上赶着都会去国外。我们原来特不明白,也问过他,他就说国内老百姓还照顾不过来呢,国际不国际的也无所谓了。

实话实说

宣传影片不忽悠,没多说过《夜宴》几句好话

葛优还有一优点:对于影片的宣传,要么不说,说了也不撒谎、忽悠。比如他拍的《窒息》和《红美丽》,票房确实不太好,宣传影片时,记者问《窒息》,他就说这片子挺不一样的,我一直不太敢看,可能真不那么吓人。《红美丽》就说他自己都没怎么看懂,拍太久了,真忘了,或者说我没看,所以不能评价。

但是你看现在演员宣传自己的新作品,不都说"我喜欢","我觉得很好"之类的吗?其实那些不也有很多是"虚假广告"吗?葛优跟冯小刚关系那么铁,也没多说过《夜宴》几句好话。他说如果因为我葛优多说了几句,导致老百姓看完片子觉得上当受骗,他不会那样做。你要在现场就会发现,葛优说话特别会拿捏那个尺寸。

2007年7月4日星期三

爆笑校园生活――看看谁最猛(4)

初中的时候,因为偶我成绩太突出,学校领导留偶多读了两年。 初中毕业后,高中的校长觉得偶很有前途,就多收了偶三万。高二的时候,班主任认为偶已经有独立生存能力,于是让偶退了学 

就这个学期,期中考试考英语,因为贪玩一个通宵后压根没有复习,迷糊中去吃学校门口的豆腐花,但那天早上的豆花特难吃,还有40分钟考试,我一看来不及复习什么了,就一口气喝了4碗,跑到班主任那说不舒服恶心,而且立马跑到厕所呼啦呼啦地吐给她看,哈哈,老师给我办缓考,而且后面几门都不用考了~~天天在寝室大睡特睡~ 

初中时考生物,由于卷子简单+复习充分+考试时间长+不允许提前交卷(考后老班要训话)=写完卷子睡了一觉醒来考试还没结束! 

由于学习好,高中时第一次在全校近两千人面前演讲,内容一下子忘得一干而净,老师递过来演讲稿,手紧张得发抖把演讲稿都扯破了,还是一个字都没有说出来,全校师生暴笑,校长把茶都喷了出来~~~~~~ 

小弟玩游戏被抓,被拍照(那时在搞什么严禁游戏之类的活动),叔叔教育我几句让我走,结果五分钟后在另一个游戏室找到我,又拍照^^^最后又在另一个游戏室找到我,照都懒的拍了......寒一个先 

初中的时候看老师办公室没人,物理老师桌子上放了一台量程10安培的安培表,于是我和另一个同学好奇的把安培表的红黑两个插头插到办公室的交流电插座里边,看看会有什么结果,我当时白痴的以为只是会指针满偏,谁知刚一插进去...指针就消失了,一想指针怎么会消失的,于是仔细看安培表...发现...铁的指针牢牢实实的在指针轴上缠了十几圈!!! 

初三时生物考试一人做了三份卷子,结果另外两份的分数都比我高~~~99,98,97,我成了第三名,郁闷~~~~ 

高中的时候会考, 自己学校的老师都护着自己的学生,可是不许提前交卷,但是可以在楼内等着. 在我们考场门外来了个男生跟老师点了一下头,然后说:"老师, 我传个纸条.", 然后就扔了一个纸条到同学手上, 当时全班吓傻. 

大三的时候,正好是上海6月份,天气已经很热了,有30多度了。有天太阳很大,我顶着太阳一个人在草场上踢了4个小时的球!基本上就是狠命的射门,再跑过去捡回来!~~结果下午上课很多人问我怎么这么红啊?第二天班上多了个黑鬼,还是个瘸了的黑鬼。我发誓下次失恋再也不这么玩命了。 

上初中时,一次化学实验课我们几个提前做完实验,老师允许先走。闲逛中,神不知鬼不觉的转到顶楼的化学仓库门前,有人提议拿自己的钥匙看能不能打开那把大锁。结果没想到我的一把已经没用的钥匙竟然插到一半时就能打开!!! 
从此以后那个化学仓库就成了我们的秘密基地和资源补给库…………什么东西在实验课上没有玩过瘾的都应有尽有!经常还拿回家一部分继续研究!简直是爽到家拉!!!现在家里还有一整套化学实验用具呢^_^ 

一次我和死党进我的宿舍,我推他一下,谁知他撞在门上后,门成两节了,当天下午午睡叫一个寒。。。。 

初中晚自习,老师在讲坛上看书.我前面的同学和我开玩笑.我生气就用钢笔水用力的甩在他脸上.后来他也学我的.我们两互相甩.这个教室到处是墨水.其他同学也遭殃. 

开学第三天,我们便在寝室通宵下四国,11:00时,下面来了个老头,说是住我们楼下的,让我们可以睡了,明天还上课,不理他。早上四点又有人来敲门,惨了,老头脸都青了,说:"别以为我查不出你们哪个系的。"几天后才知道他是我们新来的系主任,几个人你看我,我看你:这回惨了....... 

小学时候和同学爬学校后面的小山,烧火堆不小心变成大火了,当时和赶来的附近住的村民一起救火(几经艰辛终于扑灭了),,,事后我们几个竟然给全校表扬做救火小英雄,,,汗死,幸好都挺讲义气,没一个把真相讲出来 

偷了化学老师一把镁带,在晚自习课后发给同学一起放镁光弹,结果被记过。。。 

第一天~~~晚上在寝室门口将室友的肥皂全放在门口~~~班主任~查房时~~ 室内狂响一阵.... 
第二天~班主任请假了~~全体室友被通报批评~~~~~~本人被全体室友狂扁~~ 
第三天~~我也请假了... 

高中时有一次考试,我给前桌答案,我把所有的选择题答案抄给了他,后来我改了几个答案,但没有跟前桌说。结果发考卷的那天,老师发到我前桌的考卷时说:我也不知道你是抄谁的选择题全对。其他的题目他一道也没有做。 

高中运动会标枪比赛,一个笨笨横穿标枪场地,结果被飞来得标枪命中PP,就像长了尾巴一样。。。 

我们寝室的四个女孩子围了一圈打麻将。。。。正打着兴头上突然有人敲门,是门房间老太!赶紧用毯子把麻将一卷扔床上~~~门开了,老太冲进来:"检查违章电器!",晕~~~热得快刚烧完正放在凳子上凉着,被看到就糟了要被处分的~!说时迟那时快,我一屁股坐凳子上。。。。好烫。。。。。。 

初中时,有天晚上晚自习,我们10来个同学一起翘课爬上了秦始皇陵去玩;第2天班主任抓出我们10几个人,每人被勒令交一份作文,题目为《夜登秦陵有感》~!巨寒~~~~! 

大学毕业那天晚上喝酒喝多了,半夜起来上厕所,把窗户当成门一脚踏空(偶睡上铺),掉下去了,竟然屁事没有(偶住2楼),爬起来上完厕所回去睡了。 

一次下雨,我睡上铺,我下铺靠窗的人,被雨淋到,决定把床往外搬,结果叫我好几声,都没醒,于是她们几个人连我带床往外拖,最后我被震醒,猛的坐起,大喊:"地震了"。 

我没做过什么强的事情,所以我决定照这这个帖子统统做一遍……

慎入!一些笑死了若干人的语句

  1.你在池中奋力地划水,蛙泳、仰泳、蝶泳,还有令人折服的潜泳!岸上的老汉急了:你喝干了粪池子,不让俺种地了? 

  2.女,喜甜食,甚胖!该女有一癖好:痛恨蚂蚁,见必杀之。问其故曰:这小东西,那么爱吃甜食,腰还那么细! 

  3.一条警犬看到马路上过来一条普通狗,就气势凶凶地跑去质问它:我是警犬,你是什么东西?普通狗不屑一顾地看看它说:蠢货,看清楚点,老子是便衣! 

  4.小蛤蟆看见了青蛙,便问妈妈:"那叔叔长得和咱们一样,可为啥是绿皮肤呀?"蛤蟆妈妈:"嘘!小声点,那是因为他老婆和别人过情人节去了。" 

  5.一个消化不良的病人向医生抱怨:我近来很不正常,吃什么拉什么,吃黄瓜拉黄瓜,吃西瓜拉西瓜,怎样才能恢复正常呢?医生沉默片刻,那你只能吃屎了。 

  6.有只猴子每吃东西总要先在屁眼上蹭一下。管理员解释说此猴曾囫囵吞下一只桃子,桃核卡在屁眼动了手术,此后没吃东西必先验证是否能通过。 

  7.这天看见一乞丐拿着两顶帽子在乞讨,给了一毛钱后,问乞丐为什么拿着两顶帽子,乞丐答"最近生意不太好,我又开了一个分店。" 

  8.沙僧参加数学考试,监考老师盯着他脖子上的珠珠看了半天,冷笑道:嘿嘿!把算盘伪装成这样了,休想作弊,快摘下来。 

  9.魔鬼:上帝,我可以投胎吗?上帝:可以。魔鬼:我不想再做魔鬼,我想像天使那样全身洁白,还要有一对翼,但是我仍然想吸血。上帝:那好,你就投胎做护舒宝。

2007年7月3日星期二

斯大林一句话 百万德国女人被苏联红军强奸

第二次世界大战结束已经六十年了,近几年来有人著书称,苏联红军在攻陷德国后曾大肆强奸德国妇女。据估计,在二次世界大战中被苏联红
军强奸的德国妇女总数在两百万以上。

斯大林:血债要用血来还

强奸是人类文明所不齿的最丑恶和野蛮的行径。因为它无视人类自身的尊严和价值,因为它以强凌弱摧残生命,更因为它的受害者是生养人类
的女性。由于这些原因,文明社会对强奸行为的惩罚从来就是严厉的。

希特勒的冲锋队在进攻波兰和苏联时,所到之处,不仅强奸了很多当地的妇女,而且设立了大批公开与非公开的妓院,强迫这些妇女"慰藉"
德国官兵。愤怒的斯大林在反攻开始时曾说:血债要用血来还。

《柏林:一九四五年沦陷》:柏林十三万妇女被强奸

或许是受斯大林的激励,苏联红军也强奸了德国妇女。2002年,英国人军事历史学家安东尼。比弗出版了《柏林:一九四五年沦陷》,这本书
是根据俄罗斯档案中一些未经公开的材料、德国、美国、法国和瑞典的战争档案,以及受害人的忆述而写成的。

比弗在书中指出,在差不多三年多期间,苏联红军由普鲁士和纳粹德军作战并攻打柏林,估计共有二百万名妇女被奸,其中有些更是被人轮奸
。单在柏林,就有十三万妇女遇害,其中有一万人因不堪打击自杀。

被强奸的妇女在战后由于受惊过度,一直都不愿再提起这件事,由于红军被视为将德国从纳粹手上解放出来的英雄,他们犯下的罪行被视为禁
忌,无人敢再提。而比弗也收到很多受害人的信件,其中部分人还讲述了一些鲜为人知的事,例如有些妇女不想落到红军手上而自杀,有人因
奸成孕,感到羞辱而将亲生女儿杀死,还有学校女生集体自杀。

英国人比弗是军人出身,后来转当作者,著作中包括讲述西班牙内战,和有关二次大战的书籍。他表示苏联当年对红军的暴行视若无睹,是要
报复纳粹德军强迫苏联和乌克兰少女做军妓。

受害人公开历史

第一夜,我们几家邻居集中到雷曼啤酒作坊,藏在顶楼上相互壮胆。我的表妹从柏林躲避轰炸住在我家,她带着一个两岁的孩子。她有一支手
枪,但子弹很少,还不够我们大家自杀用的。我们在阁楼一夜未眠,听到城里到处都是枪声。天亮后大家才敢回到自己的家。俄国士兵到处寻
找年轻的女人,只要抓住一个,立刻拖到空房子里,接着就轮奸。那时我24岁,每天提心吊胆的。

红军掌管了全城的秩序,前六个星期里基本不允许我们出门。一天晚上,俄国人闯进我家抓走了我和表妹。这一点太容易做到了,因为他们禁
止所有的居民锁房门。他们用枪逼着我们进入一幢空房。那里已经站着一些年轻的女人。接着,集体强奸开始了,这些野兽扑向我们,一次又
一次,持续了整整一个夜晚,直到天开始发亮时才离去。当我们拖着软弱的身子回到家里时,母亲居然非常高兴,因为她看见我们还活着。当
时有很多女人被强奸后就被击毙了。我们小城中有很多人上吊自杀,我们常常要去剪断绳索,埋葬她们。

尽管这座城市有60%的面积是废墟,但还有一些面包房可以使用。俄国人把女人们带去烤面包。我们每天可以得到两百克面包。有一天,这些恶
棍又把我们带到了一幢空房子里,让我们给他们杀鸡拔毛。全部工作结束后,我们不但得不到一块鸡肉,反而遭受了新的一轮强奸!

后来我们被送到城外的一座农场去劳动。在那里喂牲畜、挤牛奶、做黄油,给俄国人提供食品。俄国人来取食品时,常常要拉我进空房子。每
到这时,我的母亲都要挡住俄国人,苦苦解释我已经怀孕……

医生:俄国士兵逼迫妇女就范

阿诺特。尼登楚博士战时在罗塞尔(Roessel)的一家医院里工作,他以一个内科医生的身份见证了苏军的强奸狂潮。他在回忆录中写道:

俄国人攻占东普鲁士时,我作为约瑟夫医院的主治医师留在了罗塞尔。1945年1月8日,罗塞尔市在经过很微弱的抵抗后被苏军占领,随即开始
了占领者在城内的大规模殴打、焚烧、强奸和杀人。第一天就有六十个居民被杀,其中多数是拒绝被强奸的妇女、试图保护妇女和儿童的男子
,以及不愿意向俄国人献出手表和烈性酒的人。我的医院有一天收下一个肺部被子弹打成重伤的流产孕妇。在一个俄国人意欲对她施暴时,她
表示自己是孕妇,那个俄国人大怒,用脚狠踢她的肚子,并对她打了一枪。

强奸很快成为失控的风潮。根据我在医院的了解,我相信在15岁到50岁之间的妇女中能逃避被奸淫厄运的只有10%左右。俄国人对他们的施暴对
象几乎不加选择,被强奸者包括80岁的老人、10岁的小孩、临产孕妇和产妇。晚上,俄国人从门、窗或屋顶进入平民家庭,一家一家地搜寻女
人,有时甚至在白天就扑向她们。他们大多带枪,经常把手枪塞进女人的嘴里逼迫她们就范。而且常常是几个人按住一个女人,然后轮换着实
施奸淫,结束时把受害者杀掉灭口。有两个我认识的妇女就是这样被杀的。俄国人还常常一边强奸一边殴打受害人。

我相信,只有很少的俄国人没有参与这些可怕的罪行。在这方面,军官和士兵很少有差别。当一个遭到强奸的十岁女童因下体严重受伤被送到
医院时,我实在按捺不住了,我通过波兰翻译责问医院的苏军负责人:究竟有没有可能制止这种行为?!对方答道:"最开始被允许了,现在
禁止它就很困难。"当时也发生过把个别罪犯押送到苏军指挥部的事情,但这些人被关押几个小时后就放掉了。

被强暴者发生性病的情况越来越多,特别是年纪小的受害者。治疗的医药奇缺,药房都被俄国人抢空了。医院里每天要做25例以上的性病处理
。很多女孩开始尝试和一个施暴者把性关系固定下来借以保护自己。

苏联军队在征服纳粹德国的过程中大量地使用了"解放"这个词,而战后的德国人则习惯把纳粹德国灭亡的时刻称作"零点",意指德国新的
历史由此开始。让德国民众接受被俄国人"解放"的观念是很困难的。至少对于无数德国妇女来说,俄国人的到来无异于天塌地陷般的灾难。

一泡屎与我的成名之路

本人简介:榴弹炮 男 25岁 风靡全国的SB乐队主唱 2006年好赖污最佳男主角 全国政协委员 爱滋病形象大使 成名之前身份不详 短短三娱乐圈生涯拥有资产数百亿美金 

实不相瞒,我在成名之前,是一个乞丐。平均月收入不到30块钱。没有亲人、朋友、老婆、孩子、房子、车子……但唯一庆幸的是,上天给了我聪明于常人的大脑,我当年在孤儿院读到四年级,要不是孤儿院倒闭,说不定我也能成为天之饺子什么的。但四年级的文化水平在乞丐中简直是哈佛级的。所以,我的成功,是和知识分不开的。 

2003年底的某一天,我在一个偏僻的角落拉屎,与其他乞丐不同,我会在拉屎的同时把用于擦屁股的报纸看一遍,感谢那送我几个柿饼的好心人,它直接造成了我便秘。于是我得以把一整篇娱乐报道看完。 

报道中详细叙述了一位张姓大牌明星的性丑闻。说他年轻时一次酒后走火,与一位生产队女队员造出了一个生命。女的神秘的消失了20多年,后来他火了,有钱了,女的突然跳出来告他,于是越告他越火,越告女的也越火,最后两人双双名利兼得,又突然结婚后来又离婚后来又复婚。现在又在报上寻找他们失散多年的宝宝。 

韦小宝、周星星此刻灵魂附体!我拉完最后一块,擦净屁屁,一个伟大的计划诞生了! 

凭借多年养成的游荡习性,我对这个城市报社的地址并不陌生。当我来到报社门口,正赶上人家下班,于是我等候。走出来三三两两的人,一个打扮时髦,美丽无比的女人映入我眼帘,我确信她是该报社娱乐版的。因为我看过小报上写记者不漂亮很难对男明星进行专访。我迎上去。 

"滚开!"女记者鄙视我。 

"我不是来乞讨的……"我说。 

"滚开!"女记者依然鄙视,同时露出高跟鞋尖。 

"我是……张某某的儿子……失散的那个!"我演练了一上午,终于还是结巴。 

"什么什么?你再说一遍?"女记者像过了电的老鼠,眼睛红了,直钩钩的盯住我。我又重复了一遍。 

女记者突然泪流满面,扑到我脏兮兮的怀里,嚎叫着:"苍天哪大地呀!这是哪位天屎大姐这么照顾我呀!不用上床就让我得到如此猛料!挖哈哈哈……"说完还很严重的啃了我一口! 

我第一次和异性走进了高级宾馆的包房。 

"随便坐吧!我喜欢在包房里采访,这是我的职业习惯!"女记者很大度。 

"需要我叙述一遍经过吗?"我说。我早在来时的路上想好了一套谎言。 

"不用,我知道你是假的!但是在没有别的假的出现之前,你出现了,出现在我的面前,很严肃地告诉你,只要你按我说的去做,咱俩都发了!"女记者的一番话让我目瞪口呆!我虽然聪明,但毕竟长年从事乞丐这一体力工种,好半天才反应过来。 

"第一,从现在开始,你咬死了说自己就是张某某儿子。第二,除了我,你不要再跟任何记者接触。第三,你每天抽自己嘴巴10000下,抽出茧子来,这样脸皮厚了,别人才看不出你是撒谎。"女记者一字一顿嘱咐我。 

就这样,2004年1月,我的照片上到了所有报纸、电视、网站上,女记者的文才果然了得,从我"父亲"张某某酒醉回宾馆开始,如何见到我"妈",如何前戏、进入、射精……一直写到我在随母亲寻找父亲的路上(靠!像古代,电话、电视都没有)和母亲失散,自己流浪江湖,乞讨度日,惨不忍睹,突见报纸上母亲照片,知道母亲尚在人间……通篇荡气回肠,令人凄然泪下。我怀疑琼瑶阿姨以前一定也是娱乐记者,否则怎么写出来《还猪格格》? 

我火了!先是有一家媒体说是假的,后来女记者又写文章骂他,后来该媒体回骂,后来许多媒体一起互相骂,越骂我越火,终于到了真相大白,光我与亲生"父母"想见,就吸引了1000多家媒体和20000多粉丝。后来我自己都觉得这一切是真的,和"父母"搂着哭了1个多小时。下面是见面会后我与"父亲的对话": 

"我知道你是假的!因为我和我太太的事本来就是假的。"他说。 

"我知道我是假的!因为我父母死时我都6岁了!"经过训练,我脸皮厚很多 

"我们大家都是假的!但只有我们自己知道。"女记者和我"妈"打圆场。 

"还是谢谢你,让我们又火了一把,又多了几部片约"张某某很诚恳。 

"也谢谢您,我不用要饭了!"我也很诚恳。 

"我们继续加油!" 

后来,我突然被发现五音居然有四音很全,同时脸皮厚,演戏也没问题,于是我踏进了演艺圈。后来我又自爆和"父亲"闹翻,后来又和好,后来我与"我母亲"乱伦,后来发现原来我"父亲"是同性恋,后来我被发现吸毒,后来证实是谣言,后来媒体说我得了爱滋病,后来我又当上了爱滋病防治形象大使…… 

我越来越火,钱越来越多,多到见乞丐都给他空白支票,缺多少自己填。 

我没忘记那使我成名的美女记者,找了一张盗版A片,把头整成马赛克,然后同意她在媒体上公布,说这是与我的性爱光碟,还发表了性爱日记,说为我打过胎,说我是性虐待,后来她被一家大媒体年薪800万挖走…… 

扯淡!!我小时侯要饭被狗咬掉了JJ,打个屁胎!

2007年6月29日星期五

当我说她是人妖(暴强魔兽版)

当我看到一个女亡灵的名字,我鄙夷的说了声:"人妖!" 

结果: 

"你敢说我是人妖,我真想把刚用过的卫生巾一下贴在你脸上,叫你看看老娘是不是人妖。" 

"你真的是MM?看你的名字嘛,每晚两百元,我倒,你个MM敢取这个名字?哪个会相信你是MM嘛,吃多了。" 

"姑奶奶我喜欢,关你屁事,你们男人玩巨魔,叫细长杀伤力强,玩牛头,叫粗壮接触面广,选个亡灵叫天生JB是骨头,选个兽人叫JB内裤包不住,死男人每个名字都取的那么黄色性饥渴,我就把你们惹到了,说我人妖,****爸的,你们晚上走街上,有人对你说每晚两百元,你们怎么不怀疑是人妖呢,还不是边脱裤子边往前冲,现实里那么喔鹾,游戏里就把人妖当MM,MM当人妖,真是白发育那么大的JB了。" 

"晕哦,你真的是MM啊,这么凶,一点都不温柔,哪个男的会喜欢你这样子嘛!" 

"要求你喜欢,易求无价宝,难得有情郎,老娘现在看的起的男人还没找到,现实中,追我的男人多的很,10个法师AOE两管蓝都暴不完,我就是想在游戏里找个新鲜,找个有个性的,想不到被你们这些买点卡不卖点卡,点个奥金5G都讲价的穷男人些JJWW的说我是人妖,真是比月经来了都不爽。" 

"好了,好了,不说了,我错了嘛,我知道你是MM了嘛,这么说,你还很漂亮了?" 

"哼!不是吹,仍何男人看了我都要流口水,除非是性无能,老娘笑一笑,盗贼刀要掉,老娘舞一舞,战士拿不起奥金斧,我就那么在猎人旁边一过,他立马变斗鸡眼,什么都瞄不准。" 

"真的假的哦?你干什么的哦?你应该是在娱乐行业上班吧?" 

"什么?我两口水吐死你信不信?老娘正宗名牌大学毕业,主修社会关系学,现在在公共关系科上班,标准白领,你才是为几个钱去给老女人慰寂的鸭子。" 

"好了,我又说错了嘛,对不起了嘛,姐姐!" 

"还好你今天遇到我,要是遇到我那两个姐妹,你娃娃死惨!" 

"你姐妹都叫什么啊?也美女哇?" 

"一个叫我要男人,一个叫男人我要,以后见了她们,嘴巴甜点,她们都是大美女,心情好跟你视频下,叫你娃娃开下眼。" 

"哦,晓得了,谢谢姐姐了啊。" 

"好了,不跟你扯了,我上大号杀人去了!" 

"你还有大号?叫什么名字啊?" 

"我是人妖!" 

一群未来律政人的BT故事

  我们学的是法学,刚到学校没多久,碰到一个管理系的学姐,跟我一个学长说:你们政法系,尤其是你们法学的,不是BT就是疯子。当时那个不服气啊,不过现在看来还真是有道理。

  ---------------------华丽分界-------------------------------

  有个同学手机里有个笑话,这样说的:这是世界上最凄美感人的爱情故事,男女主人公要通过世俗的种种阻挠才能得到他们的爱情,这个故事只有一句话――师太,你就从了老衲吧。
  前一天看了这个笑话觉得一般般吧,隔天上课,坐我后面的男生为这个凄美感人的故事加了个转折,让这个充满悲剧色彩的故事变的精彩刺激,他也只有一句话:秃驴,敢跟贫道抢女人!

  ---------------------华丽分界-------------------------------

  学校规定,拿到驾照的同学可以加一个学分,某日,小W(女)和小X(男)在讨论驾照的事,小X忽然转头问后面的小一:哎,你有驾照的吧?什么照?
  小一:我B照。
  小W:B?你不是考的C吗?(B照是卡车,C照是小车)
  小一:哦,我说我B罩杯。..-_-!!(标准36B)
  下课后小一郁闷的跟我们讲这件事,站在边上的小C笑的不行,边笑边说:我小姨以前去考C罩杯的时候…………(我不知道原来这个也要考)

  ---------------------华丽分界-------------------------------

  女的在一起就爱讨论身边的女的。
  我们班有一女生,"波澜壮阔",还有很深的乳沟,我们几个感到很疑惑,为什么我们弄不出那个效果。
  大家七嘴八舌的讨论,最后我一本正经的总结:其实这个除了大小还的看你穿什么款式的乳沟……-_-!!(其实我是想说,还要看你穿什么款式的BRA,结果……)
  以后很长一段时间,大家见面都问:哎,今天你穿什么款式的乳沟?

  ---------------------华丽分界-------------------------------

  小L(男)不小心从楼梯上摔下去,把手摔肿了,两只手肿的跟馒头似的。
  下课的时候他从我们面前过,小H(女)想看看他的伤势,就言简意赅的说:给我看看,有多粗?有多大?
  ..-_-!!
  小L愣了一下后,把手伸了出来.要是没见着人,只听对话,那的是多大的误会啊!!

  ---------------------华丽分界-------------------------------

  小C是我们班最小的男生.
  一天他挨着我和小一坐,小一问道:说!还是不是处男?!
  小C笑笑,回答道:那还用说,当然不是啦!
  偶和小一很差异,问道:给谁了?还真看不出来啊你!!
  小C奸诈一笑:嘿嘿,给右手了呗!

  ---------------------华丽分界-------------------------------

  隔壁女生上自习回来后说:听说没?新校区那边有个女的上自习回去,经过修建区的时候被个民工强奸了。
  偶们的第一反映是――她告学校不!?(嘿嘿,职业病)
  没有,人家都被保研X大了还告什么啊?(X大是一本大学)
  小W说;对啊,我听说这个学校被J了的女生都可以保送X大。
  我和小一,大着眼睛说我宁愿被J了然后保研。
  小D说:那怎么可以,现在膜很值钱的。
  小一:你会不会算啊!保研了有了学位找个好工作,什么膜补不回来!!
  (也许这真的是很BT的想法,在中国人的观念里,对一个没有什么比贞操更重要。男人们的处女情结,用人单位的学位情结、性别歧视,让我们在夹缝里苟延残喘。挣扎着活出来的,就成了没有人要的老处女。也不能怪我们BT)

  ---------------------华丽分界-------------------------------

  小一以前寝室的都是强人。
  有次夜谈,一女生讲她高中寝室管理的很送,有一次她的上铺带了男朋友回来,半夜两人ML硬是把她摇醒了。
  刚说道上铺两人在ML,忽然有个女生接口:哎,那个男的怎么进去的?
  讲事的女生顿都没顿,麻利的接道:插进去的呗!!
  问话的又说:不是,我是说男的进去女生寝室。(其实是惊讶宿舍管理不严格)
  讲事的回答:走进去的吧,

  ---------------------华丽分界-------------------------------

  QQ早上一到教室就对着小Z大叫:你个兔崽子,每晚十二点就给我发黄色短信,看我不灭了你。
  小Z说那以后不发了。
  第二天,QQ又大叫:你个兔崽子,昨晚等你短信等到一点。= =!

  ---------------------华丽分界-------------------------------

  一日逛接,在步行街见到如下场景.
  一美女穿了高跟的饿靴子,结果在大理石地面上滑了一下.
  旁边一女的狂笑.
  滑到的女的张嘴就骂:小JB你笑.
  看笑话的女的接道:你有JB给我笑哦?

  ---------------------华丽分界-------------------------------

  小一是狂人,一段时间以"日你不死"为口头禅.
  一日她约偶吃饭,偶迟到鸟.
  她张嘴就骂:才来!!我日你不死!!
  偶顺口接了:那谢谢你了.

  ---------------------华丽分界-------------------------------

  偶们的刑法老师喜欢拿强奸案例来讲解.这就影响了我们全专业.
  一日,偶与小C、小W、小H在食堂吃饭。小C与偶不知道怎么就扯到强奸罪上了。
  小C:强奸罪的主体不能是男的。
  偶:拜托!!强奸罪的主体只能是男的好不好!!
  小C:那女的不能做为强奸罪的主体吗?
  偶:当然啦!女的怎么J男的!就算迷奸也要那男的硬啊!!
  小C:谁说女的不能奸男的!!处男失身怎么算?
  偶:你在说鸭店啊?那是卖淫好不好!!犯法的。
  小C:哦,说错了!我是说男的不能做为强奸罪的客体。
  偶:怎么不能!?鸡奸兽奸!!成都金牛区法院前阵子就审结了一个强迫男性卖淫案。哎!!你到底分不分的清主客体啊?
  小C:(他已处于迷糊加癫狂状态)你到底知不知道强奸罪的定义?
  偶:你又知道?
  小C:我不知道。
  偶:我也不知道。
  小W、小H同时吼到:那你们扯个P啊!!
  我们起身走的时候,隔壁桌的四个女生三个满脸通红,不知道是憋红的还是羞红的,还有一个爬在桌上使劲抖。= =!
  (《刑法》236条规定:强奸罪,是指违背妇女意志,使用暴力、胁迫或者其他手段,强行与妇女发生性交的行为。)

  ---------------------华丽分界-------------------------------

  说个我们学姐的事。
  这个学姐爆喜欢玩大话,没有课的时候一定在网吧玩。
  有次她在网吧呆了三天没回来,回寝室后洗漱上床。睡着睡着听到她说:别整我的脚!
  寝室人以为她说梦话,没搭理。
  过一会儿她猛的坐了起来,吼到:谁啊!?
  使劲一掀被子,只见四只没毛的老鼠在脚边蠕动……(刚出生,眼都没睁……)

  ---------------------华丽分界-------------------------------

  还是小C的事。
  小Z追个女生没追到,在寝室很郁闷。于是小C安慰他:没事,大男人何患无妻,再说了,我们专业就你和金某某最帅!我支持你!!
  隔天,几个人聊天,在场的有金某某和朱某某在,小Z不在。
  大家聊高兴了,小C说:在你们两面前我就不说假话了,我觉得咱们专业最帅的男的就你们俩!!
  这事被我们知道后,都不信他说谁帅啊漂亮了。
  说话没谱啊。

  ---------------------华丽分界-------------------------------

  学校外面有家小馆子,老板叫陈姐。
  一天上课,有人带了鸡蛋到教室,SD见了之后就拿来玩,边玩边念《天下无贼》里的台词:陈姐剥的可是生鸡蛋。
  恰好小L路过,说了一句:陈姐,来分蛋炒饭,多加饭,打包!

  ---------------------华丽分界-------------------------------

  知识产权法课,老师讲在一些国家将声音也作为一种商业标志。
  怕我们没闹明白,就举了个例子:小时候大家都玩过小霸王学习机吧?开机时候那个模仿唐老鸭声音说的'小霸王',就算做一种声音标志。还有什么?
  SD在后面说;我LG喜欢护舒宝的那个声音。-_-!!

  ---------------------华丽分界-------------------------------

  我们这群人平时看上去挺有志青年的,但是一回寝室就不一样了。
  小一过生日,大家在寝室狂欢,打斗地主,输了的就站到阳台上大声吼,让吼什么吼什么。(我们住一楼,而且是临着大路)
  小D输了之后吼了一嗓子:我的黄瓜是拿来用的!
  小一吼的是:我是巨无霸。(36B也不错了)
  小H很斯文,结果她吼的是:汇仁肾宝,他好我也好!
  小W让她跟她LG打电话,对着电话吼:我是最漂亮的女人!
  偶没吼什么经典的,就说了些个人隐私。>w<

  ---------------------华丽分界-------------------------------

  新生辩论赛让我过去做评委。
  完了之后,主办社团的一个负责人过来问我些问题,问完之后我说:你F吧。
  她说:什么F?
  偶说:装什么呢你?
  她:哎呀,师姐你好坏啊!!我是B啦!!
  偶:你B?你要是B你们部长不就是负值?!
  她:我真的是B,不信你验!
  此时小Y走了过来,偶对小Y说:她说她B你信吗?我觉得她F,起码也是个D。
  小Y低头一看,那我呢?
  偶:你就一A吧。
  小Y:那如果她F我可不可以是B啊?
  偶:我听说一种叫云南什么什么的东西可以丰胸的。(其实是云南葛根粉,结果一下忘了。
  小Y立马想到云南的另一特效药,她说:难道是云南白药?
  偶没反应过来,还在想,F大笑不止,说:哈哈,本来就小,再活血消肿不就成了国际级的飞机场!?

  ---------------------华丽分界-------------------------------

  说点其他人的。
  我一师兄讲的。
  说他们高中时洗衣服只能在宿舍楼下洗。
  一天他们几个正洗着呢,来了四个女生,在楼下叫一个男生,那男生应了之后很旧没下来,于是其中一个女生说:MD,再不下来冲上去把他轮奸!!!(暴汗!!)

  ---------------------华丽分界-------------------------------

  小D以前戴框架眼镜,后来换了隐性的。
  有一次起迟了,眼镜没戴好,上课上到一半眼镜掉出来了。她把眼镜捧在手心里,问和小一怎么办。我们先是狂笑,之后,小一一本正经的说:含在口里,不然要干,干了就报废了。
  我用凝重的表情使劲的点了点头。小D被唬住了,真的要把眼镜放进嘴里,可惜最后关头我没忍住,笑场了。小D才知道又被整了。

  ---------------------华丽分界-------------------------------

  讲个我们寝室另一个女生的事,她是化学系的,思想还基本跟不上我们,比如上面的事她估计80%都整不明白。
  一次上马哲,全校公选课,大家就一起了。
  她犯困就睡了,睡了一会儿之后,小W忽然拍我,让我看她,我的天!!她的哈喇子都流到地上了,还有些挂在卷发上。
  我和小W面面相觑,更郁闷的是,她男朋友也看着她的哈喇子在流。
  快下课的时候,她醒了,抹了一下嘴,云淡风清的说:睡的好舒服啊,都流口水了!
  = =!

  ---------------------华丽分界-------------------------------

  还有一次,她约了她好朋友来陪她睡。她朋友洗了之后爬到床上开始整理床铺。
  忽然她朋友大声叫到:天哪!!你居然把内裤放到枕头底下!干净的还是脏的?
  她抬起头看了一眼她朋友手里的东西,云淡风清的说:那不是内裤,是抹胸。

  ---------------------华丽分界-------------------------------

  有一天她回来之后跟我讲他们系有个女生在学打毛线,决定织顶帽子送她男朋友,但是不知道应该织什么颜色。
  后来想了一下,决定织她男朋友喜欢的颜色,男朋友也不计较说随便,织什么都可以。
  于是该同学买了二两绿色的毛线开始动工………………

  ---------------------华丽分界-------------------------------

  又想起来一个,怕忘了。
  说老实话。我们专业的人,个个都是刀子嘴没良心。
  一次转校园,见到一对情侣,男的没有女的高,而且习惯特不好,随地吐痰。
  偶说,这女的好人哪,救死扶伤。
  小一说,我还以为你要说郎才女貌呢!
  ……

  ---------------------华丽分界-------------------------------
  
  法律系
    男:法律面前人人平等,这句话你一定不反对吧。
    女:当然。
    男:可是我觉得这么久以来你一直高我一等。
    女:日后就平等了

2007年6月25日星期一

校园女生扫兴十则

1、在挤满113名学生的课室里整整"清蒸"了三堂课,被政经老师催眠了一百五十三分钟零七秒之后,终于迎来了一片曙光。顶着狂轰滥炸的脑袋瓜溜达在校道上,突然一个高大魁梧的背影印入眼帘,心中不禁一阵狂喜――"帅哥!"于是乎,甩开"飞毛腿",做鸵鸟状往前冲――哇噻!一脸青春痘,实在是不看也罢!枉费我一身热汗。扫兴! 

2、本人虽身为女生,无奈天生缺乏温柔细胞:大嗓门,急性子,箭步如飞――男生说见了我就自卑!某日,也不知是抽了哪根筋,吾独自一人在上下九以差点被人挤扁为代价买了一条粉红色碎花裙和一件白色吊带背心。一改往日"硬朗"形象,呈现"淑女本色"。果然,刚入教室,男生们一个个冲着我目瞪口呆,正当吾喜哼"就这样被你征服"时,"土匪"悄悄给我递了张纸条:山哥――拜托啦,为了我们的胃――还是换回T恤衫和牛仔裤吧!"――哼!一群土包子!扫兴。 

3、晚上自修回来,室友争先恐后的冲着我告急:"有一男的,一男的,声音极具磁性,在1小时内共打了8个电话找了你,问他是谁,他说你知道的。""啥?哪根葱?"我反问,突然,思维迸发――莫非是他?!难道,嘻嘻!数分钟后,美梦泡汤。我实在无法克制住自己,拧着电话筒发出了最后的吼声:"你报个名不就得了,买什么关子呀?!刘德华都没你这么自信!"――堂弟,找我借钱来了。扫兴! 

4、终于迎来了世界电信日,"校园卡"也可以上网了。谁知,我那可怜的"掌中宝"居然没有中文输入!只有拼音输入。哎,凑合着过吧!于是,兴冲冲的给老妈发了条短信。五分钟后,她老人家给我回了"信"――"女儿,你在说什么?"――扫兴! 

5、美学课闷得令人心慌,14周,我共上了3节课,某日,听说老师要"阅兵",我早早就去霸位,端坐于第一排。结果老师吹了两堂课也没提点名的事!扫兴! 

6、某晚,学习热情高涨,伶着几斤重的书在教学楼心满意足的找到了个偏僻清静的地方。大概1小时后,几对鸳鸯陆续到来,有喂饭的,有卿卿我我的,有窃窃私语的。课室顿时成了"情人岛",吾自然也成了"闲人",非但无心向学而且自卑感倍增。扫兴! 

7、在公交车上,吾学雷锋为一老伯让座,哪里知道,他老人家晕车,坚决不坐,我反倒成了强人所难。扫兴! 

8、经过一番思想斗争,我终于横下心花了五十多块买来"粉刺清除贴布"。只可惜,"黑头依旧在,几度鼻头红"。效果还不如自己用手挤――扫兴。 

9、与室友一起努力,熬了一锅皮蛋鲜鱿粥喝,美美享用了一餐后,才知道这星期轮到我洗锅――扫兴! 

10、本以为可借此文发泄心中的郁闷,没想到,行文至末,心情愈加沉重――扫兴!

2007年6月22日星期五

PHP下一代的五个framework介绍

Blogger Help : What is BlogThis! ?
随便编写php的日子将远去了。下面有5个下一代的php框架。每个框架都为php下一步发展做了高深设计,许多都应和Ruby on Rails,快速开发动态语言,更有甚者, php on trax 直指 Ruby on Rails。如下面所列的frameworks,我学习了 AGAVI 就像 Symfony 一样轻松。我诚实的说我不愿望编写php还像以前那么自由散漫。使用这些frameworks将使用你的工作变得容易。

  在Nation.com工作时,我曾经很开心的学习,可以说拥抱这个frameworks。Symfony的亮点是Ajax的实现,包括所有的 Script.aculo.us一系列的javascript效果。Symfony也可以产生propel CRUD与数据库的面对象编程。那就是说可以操作sql就像操作对象一样轻松。

  Symfony Homepage - AJAX Screencast

  cakePHP frameworks近期发布1.0稳定版。Cake的强烈的面向对象规则使有面向对象开发经验的人很容易使用。象其他frameworks一样, cake也保持了快速开发与AJAX的实现。如果你不知道frameworks,那么CakePHP是比较好的选择,自从1.0的发布,用户使用的增多,在下两个月里,将会在激活整个社区!

  CakePHP Homepage-15 Minute Blog Tutorial

  PHPArch.com最近推荐zend frameworks为最好的开发工具,而且有95,000的下载使它的成功不容置疑。同时它也是Ning.com的伙伴之一,在线平台与web服务。zend断言这将是下一代的框架,是一个分水岭。

  Zend Homepage

  Avagi是另一个framework,我个人很熟悉它,虽然它有些地方没有Symfony精彩,但是它强烈的MVC架构是大家所需要的。同时它的一个分支流行的MOJAVI项目在社区里激活率与IRC一样多。

  Agavi Homepage - QuickStart Movie

  php on Trax本质上是Ruby on Rails的php翻版,实际上大家通常叫他"PHP on Rails",大家都知道"Trax"与"Rails"是同一回事。象Ruby on Rails与其他框架一样,PHP on Trax也有强烈的MVC原则。如果你是一个Rails程序员,而且你想转到PHP开发环境上来,那么PHP on Trax是你最好的选择。

  PHP on Trax Homepage

  每个framework都适应某部分的需求,也许他们将重新定义web,使开发更有效来精彩,提供了MVC,面向对象,这些都很容易学习。不要试图改变一个适应另一个,精心选择一个,操作它,掌握它,然后创造下一代杀手级程序

2007年6月21日星期四

ASPN : Python Cookbook : Generic block iterator

ASPN : Python Cookbook : Generic block iterator: "_undefined = object() def iterblocks(iterable, start, end=_undefined, skip_delim=True): '''Create an iterator over consecutive items (I{blocks}) of the given iterable. @param start: The delimiter denoting the start of a block. It can be: 1. a predicate C{p(item)} that returns true if the item is a delimiter and false otherwise, or 2. a non-callable object C{obj}: equivalent to C{lambda item: item==start} @param end: If not None, the delimiter denoting the end of a block. Items after an end delimiter but before the next start delimiter are skipped. Takes the same values as C{start}. @param skip_delim: True if the delimiter(s) are to be skipped, false otherwise. @type skip_delim: C{bool} ''' def get_predicate(arg): return arg if callable(arg) else ( arg.__eq__ if hasattr(arg,'__eq__') else lambda item: item == arg) def stamped_items(items): count = 0 startsblock = get_predicate(start) if end is _undefined: for item in items: if startsblock(item): count += 1 if skip_delim: continue yield count,item else: endsblock = get_predicate(end) inblock = False for item in items: if inblock: if endsblock(item): inblock = False if skip_delim: continue elif startsblock(item): count += 1 inblock = True if skip_delim: continue else: continue yield count,item get2nd = itemgetter(1) for count, block in groupby(s"


_undefined = object()

def iterblocks(iterable, start, end=_undefined, skip_delim=True):
'''Create an iterator over consecutive items (I{blocks}) of the given iterable.

@param start: The delimiter denoting the start of a block. It can be:
1. a predicate C{p(item)} that returns true if the item is a
delimiter and false otherwise, or
2. a non-callable object C{obj}: equivalent to C{lambda item: item==start}
@param end: If not None, the delimiter denoting the end of a block. Items
after an end delimiter but before the next start delimiter are skipped.
Takes the same values as C{start}.

@param skip_delim: True if the delimiter(s) are to be skipped, false otherwise.
@type skip_delim: C{bool}
'''
def get_predicate(arg):
return arg if callable(arg) else (
arg.__eq__ if hasattr(arg,'__eq__') else
lambda item: item == arg)
def stamped_items(items):
count = 0
startsblock = get_predicate(start)
if end is _undefined:
for item in items:
if startsblock(item):
count += 1
if skip_delim: continue
yield count,item
else:
endsblock = get_predicate(end)
inblock = False
for item in items:
if inblock:
if endsblock(item):
inblock = False
if skip_delim: continue
elif startsblock(item):
count += 1
inblock = True
if skip_delim: continue
else: continue
yield count,item
get2nd = itemgetter(1)
for count, block in groupby(stamped_items(iterable), itemgetter(0)):
yield imap(get2nd, block)

if __name__ == '__main__':
import re
# a slow version of str.split
for chars in iterblocks('Hello World', re.compile(r'\s').match):
print ''.join(chars)
source = """\
> name1....

line_11
line_12
line_13
...
> name2 ...

line_21
line_22
...""".splitlines()
for lines in iterblocks(source, start=re.compile('>').match, end='...'):
print list(lines)

ASPN : Python Cookbook : xml reverse-engineering ElementTree code generator (*whew*)

import xml.etree.ElementTree as ET
import re

class ETGen(object):
TAGSUFFIX = 'XMLTag'
def __init__(self, xmlin, out, param={}):
self.counter = 0
self.constants = {}
self.lines = []

h = open(xmlin, 'r')
xml = h.read()
h.close()

builder = ET.XMLTreeBuilder()
builder.feed(xml)
tree = builder.close()

self.out = out

self.__walk(tree, None)
self.__write()

def __genName(self, name):
self.counter += 1
return re.search('(?:{.*?})?(.*)', name).group(1) + ETGen.TAGSUFFIX + str(self.counter)

def __write(self):
h = open(self.out, 'w')
h.write("import xml.etree.ElementTree as ET\n\n")

# prints namespace constants
h.writelines(["%s = '%s'\n" % (v, k) for k, v in self.constants.items()])
h.write("\n")

h.write("def build(**kwargs):\n\t")

h.write("\n\t".join(self.lines))
h.write("\n\treturn ET.tostring(%s)\n\n" % self.root)

h.write("if __name__ == '__main__': print build()")
h.close()

def __getNamespace(self, name):
ns = re.search('(?:{(.*?)})?(.*)', name).group(1)
if ns is None:
return '\'%s\'' % name
if ns not in self.constants:
nsName = "NS" + str(len(self.constants))
self.constants[ns] = nsName
else:
nsName = self.constants[ns]
tag = re.sub('{.*?}(.*)', '\'{%%s}\\1\' %% %s' % nsName, name)
return tag

def __walk(self, node, parent):
name = self.__genName(node.tag)
tag = self.__getNamespace(node.tag)

if parent is None:
self.root = name
self.lines.append("%s = ET.Element(%s)" % (name, tag))
else:
self.lines.append("%s = ET.SubElement(%s, %s)" % (name, parent, tag))

# handles text
try:
t = node.text.strip()
if t == '': t = None
except:
t = None

if t is not None:
self.lines.append("%s.text = kwargs.get('', '%s') # PARAMETERIZE" % (name, t))

# handles attributes
for key,val in node.items():
key = self.__getNamespace(key)
self.lines.append("%s.set(%s, kwargs.get('', '%s')) # PARAMETERIZE" % (name, key, val))
for i in node.getchildren():
self.__walk(i, name)

def main():
g = ETGen('/home/user/manifest.xml', '/home/user/manifest_generator.py')

if __name__ == '__main__': main()

真理也需要装饰

真理也需要装饰--hagerlay的网上家园


有一位国王,梦到自己的牙齿掉光了,他召来智者为其解梦。耿直的智者说:“陛下,这是个不吉祥的梦:每掉一颗牙齿,就意味着您将失去一个亲人。”国王大怒:“你竟然敢胡说八道,给我滚出去!”
  国王下令找来另一位智者,让其解梦。这位智者听完后,一脸喜气地说:“高贵的陛下,您真有福气!这意味着您会比所有的亲人都长寿。”国王听后大喜,奖赏第二位智者100个金币。
  年轻的礼宾官不解地问第二位智者:“您的解释同第一位智者在本质上是一样的,为什么他受到重罚,而您却得到重奖呢?”
  智者先讲了一个寓言故事:“有一位年轻美貌的姑娘,满身污垢地去见国王,国王将她赶了出来。后来,姑娘洗得干干净净,如出水芙蓉一般,穿上了漂亮的衣服又去见国王。国王高兴地接见了她,并将其留在身边,十分宠爱信赖。这位姑娘的名字就叫‘真理’。”
  智者又说:“任何时候都要坚持讲真话,但人们听了赤裸裸的真理往往会觉得刺耳,所以说出真相的时候也要选择适当的方式。真理就像一块宝石,如果不慎扔到了听者的脸上,就会造成伤害。但给真理加上精美的包装后再诚心诚意地奉上,听者必定会心悦诚服地接受。”

2007年6月19日星期二

丈夫们的幽默语录

 
1.昨天我说以前的你是那么拼搏,那么努力,现在的你怎么没有动力,我真倒霉,在你下坡的时候遇到你。(偷笑,其实老公还是很努力的。) 
然后就见他一脸无辜的样,哀怨地说:我下坡的时候速度很快,别人都躲开了,就是你,太胖跑不动,被我砸到了…… 

2.作为女人,我经常问老公心里有没有我、我占多少、有没有占满。老公回答既幽默又气人。他说:你生怕我心里没有你,就使劲长肉,使劲长,把我的心撑的满满的,都快涨破了。 

3.有一段时间老公身体不太好,经常晚上睡觉时脑袋出汗,又不知什么原因。 
一天,老公早上起来,一脸无辜,郁闷地说:"老婆,睡觉时脑袋总是出汗,头发也湿了,枕头也湿了,怎么回事呀,是不是脑袋进水了。" 

4.与老公结婚后,准备赚钱买房子,得想办法控制花钱大手大脚的习惯,于是采取记账的方式提醒自己,每天晚饭后,与老公一起把当天的花销记录下来。 
今天也是照样。拿出本子,问老公:"今天你都干什么了?"(言外之意,今天你都买什么了)老公说:"今天我上班了。"我晕,又说:"我是说今天你都花什么了。"老公说:"哦,今天我花人民币了。"晕死了。 

5.和老公结婚一年了,因为准备赚钱买房子,所以结婚事宜一切从简,连结婚戒指也没买,也一直以来是我的心愿,女人嘛,总想追求一些情趣。 
一天与老公一起看电视,正好是张曼玉演的广告,铂金钻戒。看着纤细嫩白的手指上,一个精美的钻戒晶莹剔透,女主角尽情的享受着做女人的快乐,我梦想着自己也拥有证明婚姻的戒指,于是把手伸到老公面前,说"老公,我手上好象少些东西。"老公看看我,说"知道了,明天就去给你买手套。" 

6.我唱歌奇难听,所以在外面从来不敢哼哼。早上起床实在是件痛苦的事情,为了让自己清醒一下,一边洗脸一边唱上几句。 
老公当时在上厕所,我刚唱了几句,老公伸出头问"谁惹你了?"我:"没有啊?"老公:"那你大早上就骂街?" 

7.和老公骑摩托车玩去,老公骑得太快,我害怕,就说,慢点吧,眼睛都睁不开看不到路了。老公说,没事,我也看不见。

学生哄堂大笑---各科老师尴尬事件

地理老师 

某日上理化课,老师宣布下节课要小考。小明紧张地举起手问老师会不会考得很难,老师只说了一句:"十分简单。"乐得大家拍手叫好,可是考完后每个人都考得惨不忍睹,怎么会简单呢?于是小明又问老师,只听老师说:"我可没说错哦,'十分'简单,剩下'九十分'很难!" 

某班平时上地理课,地理老师常不用地球仪。有一天,校长要去听课!老师为了好好表现,就买了个地球仪。课堂上,老师问:"今天我们这里多了什么东西?"同学们异口同声地说:"校长!"地理老师说:"错,校长不是个东西!" 

英语老师 

有一个班级,班上有三个男生忽然都一起剃了光头来上课,三个并排而坐的"灯泡儿"立即成了全班注目的焦点。一位英文老师步入教室,看了他们三个一眼,便若无其事的开始授课。下课前五分钟,他要学生做英汉互译练习,指着坐在中间的"灯泡"说:"'一点五十八分'的英文该怎么说?"这位同学未料到问题会这么简单,充满信心的站起来回答:"秃!秃!秃!(two to two)" 

我的英语很差,有一天上课,老师竟然发给全班每人一张印着我英语作文的讲义,我真是受宠若惊。谁知老师发完讲义后,兴奋地说道:"同学们,发给你们的这一篇作文很不简单,几乎所有想像得到的错误在这里面都可以找到。现在我们就以这篇作文作范文,开始改错!" 

美术老师 

一位年轻女教师初次执教小学生美术课。她在黑板上画一个苹果问学生说:"这是什么呀?"学生异口同声回答:"是屁股。"女教师哭着去找校长,校长一听大怒,跟着老师来到教室训斥学生说:"你们越来越不像话了,为什么又把老师气哭了?"回头看了一看"啊!还在黑板上画了个屁股!" 

语文老师 

国文老师在台上讲解对联,举例说:"从前某报社曾公开征求'南通州北通州南北通州通南北'的下联,结果投稿信件很多,有句对得很好,就是'东当铺西当铺东西当铺当东西'。"此时一位调皮的学生突然叫道:"男学生女学生男女学生生男女。" 

生物老师 

生物老师正兴致勃勃在台上描述非洲野猪的长相,偶尔眼光一扫台下,竟发现多数学生在打瞌睡。于是大为恼火,喝道:"你们要看着我啊!不看我,你们怎么知道非洲野猪长的是什么样子?" 

哲学老师 

一个智者指导他的一个学生说:"下雨的时候,你冲进雨中,高举你的双手,你会发现真理"。过了几天,学生回来说:"我照您的建议去做了,雨水流进了我的脖子,我感到自己就是一个彻底的傻瓜。""正是这样的,"智者说道,"这就是真理"。 

有一天某教授突然停止授课,语重心长地对大家说:如果坐在中间谈天的同学,能像坐在后面玩牌的同学那样安静的话,那么在前面睡觉的同学就不会受到干扰了。 

物理老师 

肥胖的物理老师为使学生明白光线折射现象,做了个实验。她将玻璃杯装满水,问道:"假设我是一道阳光,插入水中,结果怎样?"一个学生回答:"水溢出来了!"全班哄堂大笑。

2007年6月16日星期六

看看3国人都得啥病

■诸葛亮 

病因:风湿性关节炎 

病征:长期坐轮椅 

■关羽 

病因:皮下组织毛细血管过多 

病征:红脸 

■张飞 

病因:眼睑部肌肉失调症 

病征:睡觉不闭眼 

■魏延 

病因:颅后骨质增生症 

病征:多"反骨"一块 

■祢衡 

病因:先天性狂躁加脂肪过多(另:许褚疑也有此症) 

病征:怕热、喜裸体 

■夏侯� 

病因:失明(意外) 

病征:独眼 

■司马懿 

病因:眼白蛋白质过多,远视(老花眼) 

病征:鹰视狼顾 

■姜维 

病因:胆囊过大,胆囊结缔组织增生症 

病征:胆大如卵 

■杨修 

病因:舌头过长,舌面平滑肌失调症(简称"长舌") 

病征:管不住嘴 

■周瑜 

病因:先天胸腔过窄,肺活量不足 

病征:肺活量低(简称"小气") 

■孙权 

病因:毛发黑色素变异 

病征:紫髯 

■曹操 

病因:癫痫、中风、歇斯底里等 

病征:很多,如头痛、忌医、胡言乱语,严重时会梦中杀人。 

■刘备 

病因:四肢骨架发育失调 

病征:双耳招风、手长过膝、髀肉增生等 

■司马师 

病因:眼部癌症 

病征:眼部肿瘤 

■董卓 

病因:过度肥胖,血脂肪过多,胆固醇超量 

病征:脐上点灯,可三日不熄。 

■邓艾 

病因:口吃 

病征:艾艾艾艾艾艾…… 

■吕布 

病因:嗜睡症 

病征:在最关键的时候竟然睡着了。 

■吕蒙 

病因:不明(尚待解剖) 

病征:离奇死亡 

■张苞 

病因:内出血不止(意外,马失前蹄,跌下山涧) 

病征:骨折,内脏受损。 

■少帝 

病因:药物中毒 

病征:高度机密

经典笑话2007

 
1、有次等公共汽车时,开过去一辆宝马,旁边一位高人对他身边的人说�"看,刚过去那辆就是IBM."

2、我一朋友在联通实习,一天,一老头走近来,劈头盖脸就来句"给我办张移动卡,好吧?"然后我那朋友头也不抬的就来句�"师傅,有人来砸场子!"

3、同事去见客户,可能是紧张,一开口便是�"刘先生你好,请问你贵姓啊?"汗啊~~~~~~

4、以前地理老师是个男的,特别暴力,谁一说话或走神上来就是一拳,但不打女生,有个新的女生不知道,还以为男女平等,有一次她上课偷着看漫画,被地理老师发现了,走到她面前来,还没任何表示,这女同学先吓的小脸煞白,高呼�非礼啊~我们地理老师瀑布汗~~~~~~

5、我同学说�我搁的洗衣粉太多了。另外一个问�什么?你哥的媳妇儿太多了?

6、一日风大,自行车倒了一排,只听一同学边扶车边说�谁的奔驰压了我的宝马?!...

7、我以前打电话给男朋友他们宿舍,结果不是他接的,有点不好意思,就胡编了一个名字,说:"XX在么?想假装找错人就完了~~对方迟疑了一下,说�你等等啊,我给你叫去!我当时就晕菜了!赶紧吓的把电话挂了!后来问男朋友,他说他们对面宿舍一男生叫我编的那名字~~~~

8、上次在国外,在街边看见一个做糕点卖的帅哥,我和朋友一边买一边说他像猫王,他听见我们在说他,就问我们说什么,我想了半天�"kingofmiaomiao(喵喵)"

9、宿舍女友与网友通上话了那头显然很兴奋:喂,我是王小亮,你猜我是谁?晕倒不起……

10、从一个朋友那里学到一句话�送你十个字――有他妈多远,滚他妈多远~记得第一次他对我们一群人说这个时,就看到所有人都在下面颁指头数是不是十个字...

更牛的是,我拿这句话对n个朋友说过,基本90%以上都会迟疑片刻,口中默念或者手指头略动,然后一脸的笑意说,靠,还真的是十个字~屡试不爽啊,呵呵
强烈建议大家也试试,有效果的话也来通报一下

11、一日,班长通知星期六要做什么来着(那周事情多),完了我同桌猛摇我手臂�快,告诉我,星期六是礼拜几?...

12、我一女同事,特壮(有重量也有力量),经常在车间里做力气事,把一干男同胞比下去。一日,看见搬物没力的A君,并且轻巧巧地就把一箱货给搬走,边搬边笑A君太面,太弱。A君憋了三分钟憋了一句话�你们女的长得再胖,也必定有个男的可以把你们抱到床上去...

13、中学的时候,期中考试语文试卷,文言文翻译"苛政猛于虎也",偶翻译成"凶猛的苛捐杂税,比老师还要凶猛啊!"发现卷子来才发现汗啊!班主任画了个硕大的红圈,在"老师"两个字上!

那个题一共2分,扣了我5分!

14、停电了,我爸手机还充着点,他举着蜡烛找东西,我问他你找什么,他说怎么充电时的那个绿灯不见了?

15、呵呵,山大二院的病房楼,房子的方没了,就成了病尸楼,直到现在...

16、我们寝一个学妹的同学来找她聊天,学妹的同学问她说�总听说青蛙王子青蛙王子,为什么非是青蛙啊?
我们3当时就蒙了,学妹给她解释说,因为一个童话叫青蛙王子
同学说�哦,这么回事啊,那青蛙跟蟾蜍是一个东西吗?
哎,那是叫蟾蜍还是叫单于
学妹叹了口气说:单于呗,蟾蜍是古代少数民族部落首领.
当时把我们3个憋的脸都绿了

17、有次跟我一朋友去吃饭,那店里的店员很拽,翻着白眼问�你们吃什么?
我那朋友说你们这里有什么特色菜,店员说�什么都有!
我那朋友急了,说�那就给我弄盘西红柿炒西红柿!!!

18、一次往我爸爸单位打电话找他,因为很急,通了也没考虑,上来就喊�爸~你是xxx不(爸爸的名字).
结果对面笑的都说不出话拉.

19、还有一次,一个朋友问我认为历史上哪个男人最帅,我说是潘安
他很不屑的说是杨宗保
我问为什么?
他一脸得意的说�"你不知道,人家花木兰第一眼见了他就爱上他了呀?"

20、我个好同学黑了些,她bf又太白了些,有天宿舍里得毒舌天后突然对她冒出一句�"你们这样不行,你们会生出斑马来的……"

21、同一位毒舌天后,某天见到本系毕业的一位30出头风韵犹存师兄,该师兄目前最在意的就是抓住青春的尾巴,毒舌天后这回倒是诚心诚意地想夸人,谁知一开口又是�"好年轻的中年人啊!"

22、我一同学初次问诊可能一时紧张本来可能想问病人高寿与贵姓结果说成了�大爷,你……高姓?全晕病人昏绝!

23、我们学校食堂的饭分软饭和比较硬的饭.有天在食堂我前面的一男生经过认真思考之后说了一句话�还是吃软饭算了...

24、大学的时候上模电实验课,用示波器观察整流电路的波形,我做完了就在实验室里转悠,一个美眉拉住我说�"看看我的波好不好?"我立马脸红,才发现她用手指着示波器上的正弦波。
我慌乱中说�"你的波好是好,就是不够圆滑。"顺手就给她调了一下,谁知道一下个给弄成三角波了,美眉立马急了�"你陪我的波,你陪我的波……"我落荒而逃。

25、我同学的朋友,人比较呆滞,面相可能还好.前些年去考北影给考上了,回来我们问他考啥呢?他说主考官让装白痴呢,他们都装的可象了。我们说那你咋装的,他说�我没装啊,我就这么走了一圈就给选上了......

看看男的是怎么炒鸡蛋的

���步骤1:寻找鸡蛋。1分钟后仍没找到,打电话给老婆,终于找到了。 

���步骤2:洗鸡蛋。 

���步骤3:打鸡蛋。轻轻磕,用力磕,用大力磕。 

���步骤4:清理操作台上的鸡蛋清。 

���步骤5:清理碗中的鸡蛋壳。用筷子夹,用勺子舀,用手抓,成功了(现在知道为什么要洗鸡蛋了吧)。 

���步骤6:搅拌。清理脸上、手上和衣服上的鸡蛋清。 

���步骤7:发现碗中的鸡蛋没剩下多少了,又拿出两枚,重复步骤2―7。 

���步骤8:打火,打不着。还是打不着。怎么打也打不着。 

���步骤9:打电话问老婆。 

���步骤10:拧开气阀。终于打着了。 

���步骤11:擦红花油,简单处理脸部灼伤。 

���步骤12:放油。 

���步骤13:倒掉红花油,重新放入花生油。哎,一字之差! 

���步骤14:等待油热,并幻想老婆吃鸡蛋时被表扬。 

���步骤15:救火,扇子扇,水泼,火越烧越大。 

���步骤16:在浓烟中爬着去找电话。 

���步骤17:在电话旁思考火警电话是110、120还是119。

坏学生二人组

     截至到今天,我已经有好几个下午没有去上课了,明知是不好的,还是每天只上大半天。从现在开始,我所说的每一句话都是借口,正在读书时期的小朋友们,纯当反面教材看,只能批评,不许模仿!!少壮不努力,老大徒伤悲!!!
 
     so……借口如下:
     1,小杜同学没有起好作用,他老说下午的课没用,老是说,老是说,象念咒一样,尽管我嘴上反驳他,但是他的话正好暗合了我懒惰的心理,所以就和他这个坏同学一起旷课了,我开始还一直把他当榜样呢!真是的……所以,大家要引以为戒:要离坏同学远一点!!!
     2。实在是太累了,多年没有这样填鸭式的学习经历,真是不习惯,到了中午饭以后就累了,沾枕头就睡着,一点其它念头没有……
     3。我不是来度假的吗我??!!什么时候上课成了最重要的事儿了呢???所谓度假,就是休息,想晒太阳就晒太阳,想睡觉就睡觉,发呆,逛街,吃冰激凌吃蛋糕吃肉!阳光海浪沙滩仙人掌,还有一位老船长!
     4。罗马既然不是一天建出来的,那么英语也不是一个半月就能学出来的,又不急着用,干嘛逼着自己,想上就上不想上就不上!别闹出逆反心理……我们青春期很容易有逆反心理的!
     5,尽管逃了一点点课,但是,去看了电影,带英文字幕的意大利电影!对学习英语也是有好处的!!!!!关键是,还看懂了不少,还有,今天考试得了97分,之前还得了一个90分!!!!你们是没有看到我老师那赞许的目光啊……足以让我今天美了一整天!尽管还是幼儿园英语的水平吧,架不住自己和自己比啊……
 
     反面典型――坏学生二人组,也不是什么光彩的事儿……照片小点

2007年6月13日星期三

新版暴笑口误

1男朋友一脸甜蜜的说:我请你吃阿迪达斯(哈跟达斯)。。。。。

2老婆在厨房洗水果时惊呼:"哎呀,有个长桃的虫子!"

3有次我老公跟我说咱家附近开了一个移通,我笑他,他也发现说错了,立马改口:"不,是联动"

4和同事讨论案情:那个嫌疑犯的作ai后潜逃了?!

5有一次我说去外婆家看小兔生崽崽,结果说成去看我外婆下崽崽了............

6我和我姐在网吧看机器。进来一位,我姐问:"请问您是上网还是上人?"(应该是上网还是找人)

7一次去吃面..随口对老板说:"一碗牛肉面..不要牛肉不要面!"......................寒

8老板,来碗冰粉,不要冰不要粉~~~~~~~~(我就寻思了,那他直接要碗红糖水不就完了?)

9公司新来了一个男孩儿,我和我妈说:"妈!我公司新来一个男朋友..."

10 宿舍的兄弟一起玩CS 要建地形,我说:建雪地!小三说:谁建?

11 原来想说"我是铁打的!"
结果说了一句:"我是打铁的!"
……沉默了一阵后,反应过来,纠正说:
"铁是打我的!"

12 一片冰心在夜壶

13 和男友说,晚上我们一起数星星,数月亮

14 记得当时在排练大合唱,总有同学在其间交头接耳,起得这个班主任大吼一声:不要肃静!大家狂笑!(他本想说:"不要讲话,肃静)

15 希尔店大酒顿

16 还有啊 一同学买快餐面 对着老板说到:老板,来两包快译通

17 政治自习课,一男生在和同学聊天,老师突然进来了
男生就装模作样的做背书状:"民以衣为食"超大的声音!
全班暴寒!

18 宿舍3人去团购方便面,老大有口音,一进小卖部就喊:六包康师傅的尿真多!(应该是料珍多)
唉,食欲全无……

19 读高中上政治课有偏课文一段"预习了解老师布置得作业"被我读成"预习了,解老师布置得作业"结果政治老师说"我要是你们语文老师就已经气死了"。

20 中专时一哥们,一次他约一个他心仪已久的女孩,准备对她表白.两个呆坐良久,他才鼓起勇气对女孩说:"你有没有男朋友?"女的羞涩的道:"还没有."他狂喜的道:"那你可不可以当我滴男朋友?"

21 初中的时候,在教研室,一同学推门进来问:动物老师在吗?(他要找教动物学的老师)

22 三顾毛驴
大智若驴

23 我拳头那么大的沙锅(好精致!)

24 期中考试,语文考试时,一个老师走进教室,说"那道选C的选择题,也可以填汉字"全班无语。。。5秒后,那个老师说"当然选B也可以,选C也可以,选D也可以"然后一脸尴尬走出教室。

25 有一回去珍珠湾,说我们应该在哪下车........同学憋了半天.......说....在那个..那个...那个...珍珠港下车!!
司机师傅立刻崩溃.......

26 蛋炒饭里怎么光有鸡,没有蛋呢?

27 一次我去买大黄
到了药店。。。
对老板大声说:我买点大麻。。。
老板吓得诚惶诚恐说:我们不卖这种东西的。。。
我没反应过来,还问:那哪里有??
老板无语。。。

28 去买包子,考虑是买菜包子or肉包子?老板问我时我脱口而出 :来四个臭包子 ! 老板大怒!

29 我老爸的同学读书的时候,抱了床被子进寝室,"哈"一口痰在嘴里,他准备把被子扔床上,痰吐地上,结果把被子扔地上,痰吐在了床上。也算是"口"误吧。。。

30 不要搬起脚来,砸了自己的舌头!

31 口误来自墓地
妻子责备地问:你连你奶奶的名字都不知道?
丈夫受屈地答:我咋知道,我死时奶奶才七岁。
妻惊讶:什么?
丈夫忙改口:不不,是奶奶七岁时我才死!!!

32 多行不义自毙自

33 和一帮韩国人去吃中餐,刚学过汉语的社长说要练习点菜,点完菜很自豪地说所有菜都不要香菜,等了一个小时,一碟菜都没上。投诉经理,谁知道经理说,你们不是说"不要上菜"么?大家捂着饿扁的肚子狂笑。。。。

34 八十年代初去买点心,不知要不要粮票,指着点心问售货员:这要钱吗?

曹操放屁都这么经典

 
一日曹操和刘备喝酒论英雄。二人小酌了几杯,刘备忽然放了个响屁,十分尴尬。正窘迫时,只听身后关羽坦然地说道:"诸位莫见怪,屁从羽(雨)中来!" 

关羽话音刚落,一旁的赵云跨前一步,道:"诸位莫见怪,屁从云中来!" 

赵云刚刚说罢,张飞又接着叫道:"方才一响屁,屁是飞来的!" 

大家一阵哈哈大笑。刘备也已恢复常态。 

曹操没有笑,他对此事深有感触。送走刘备等人后,曹操对部下们说道:"刘备的属下,一见主公有个闪失,都争先恐后抢着承担和弥补,真可谓忠心耿耿。此事要是轮到尔等,能够办到吗?" 

众人都忿忿不平,均想:"不就是个屁事,这有何难!" 

过了几天,曹操又请刘备喝酒,席间他想放个屁,看看部下反应如何。憋了半天,终于硬憋出个小屁。众人早已等候多时,听到"咕"的一声,大将许褚连忙抢先喊道:"屁是褚(猪)放的!" 

侍中王朗紧跟着说道:"屁是朗(狼)放的!" 

曹操一听瞪起眼来,其他人以为曹操嫌自己缓慢,都抢着往自己身上揽,夏侯敦争着道:"屁是敦(�)出来的!" 

"不对!"徐晃听了大声反驳,"屁是晃出来的!" 

荀攸说道:"屁是攸(悠)来的!" 

满宠说道:"屁是宠(冲)来的!" 

蒋济说道:"屁是济(挤)来的!" 

郭图说道:"屁是图(吐)来的!" 

钟繇说道:"屁是繇(摇)来的!" 

接着.... 

牛金:"屁是金(金)的!" 

曹洪:"屁是洪(红)的!" 

张南:"屁是南(蓝)的!" 

........... 

曹操早已面红耳赤,正要发怒。 

谋士郭嘉嚷道:"都不对,都不对!大家说的不对!".....不愧是我排名第一的军师。曹操暗暗想到。 

郭嘉接着说道:"屁是嘉(夹)出来的!" 

刘备一等人已笑的东倒西歪........ 

曹操气的昏过去了

2007年6月11日星期一

大丈夫之--打死都不和老婆下棋了

1.每次下棋总是老婆先走,我提出抗议。老婆曰:"女士优先懂不懂?你一个大老爷们儿和我妇道人家争什么争?"老婆此招屡试不爽,我迫于无奈,只好摆出大老爷们儿的架势,让她先走。 

2.下棋下到老婆败势已定的局面时,老婆佯装进洗手间,回来之后便污我清白――诬陷我耍赖,动了某个某个棋子。因无人证,我百口莫辩,真比窦娥还冤,眼看着稳胜的一盘棋,被老婆搅乱重新再下。 

3.老婆和我下棋的水平半斤对八两,两强相遇,耍赖者胜。老婆常常利用我点根烟、倒杯水的机会偷偷移动棋子,致使本来针锋相对的局面一下被她扭转,结果当然是她胜我败。 

4.老婆视力1.5,我则高度近视。老婆充分发挥其优势痛击我的劣势,每每下棋下到关键所在,她便移动身子挡住射到棋盘上的光线,让我误走棋子,抑或耍伎俩谎报"军情",说我眼镜上有根头发、有点灰尘,于是"好心"地帮我取下擦擦,我在朦胧视线中走棋,结果一着不慎,满盘皆输。 

5.下棋的时候,老婆悔棋名正言顺,每悔一次棋时,便理直气壮曰:一个大男人发扬点风格好不好,不就是悔一步棋吗,又没有什么大不了的事。我若一不留神走错一步,也想悔一步棋简直难于上青天。老婆曰:"好马不吃回头草,好男儿宁输不悔棋!"然后质问我"是不是好男儿"? 

6.每次下棋下到我败局已定时,我想投降老婆都不优待"俘虏",硬是逼着我一步一步走到最后。她则满面含春、笑意盈盈地看着我深锁眉头、冥思苦想计算着如何才能少输几步。这种做法对我而言简直就是极大的羞辱,她则快感丛生,得意洋洋。 

7.按照国际惯例,比赛时以局数定输赢。老婆颇不以为然――国际惯例在老婆那里行不通。我俩闲来无事,进行比赛时,如果我赢的局数多输的步数也多,她便按步数来定胜败;如果她赢的局数多输的步数也多,她便按局数来决定胜负。 

综上所述,我决定以后不再和老婆下棋。

十大恶搞之大学食堂服务员年度总结

现经多方调查研究,由大学生权益保护协会对当今重点高校食堂的服务生进行年度总结性评估,同时为了不过分打击服务生的工作信心及态度,在以下的总结中皆略去了姓名,望有自知之明者对号入座即可。 

高校食堂服务生大致分为以下几个类型: 

李逵型:此类型男性居多(约占5%),往往蒲扇大手里擎两把铲子,让人因联想到李逵手中的大板斧而望而生畏;通常此类人长得凶神恶煞,嗓音粗豪,皆喜欢俩字儿开头:"什么?" 

"鱼……鱼香肉丝……"同学往往胆战心惊。 

"还有……" 

"炒白菜……" 

"还有快说……别磨磨蹭蹭的,后面人还很多……" 

"好……好的……没有了……"若是女生,早已吓得鼓软筋酥。 

只见他挥动两把大铲,瞬间装好了菜,狂嚎一声:"接着……"便见一菜盘如飞镖般飞过来,若身手不快些而造成人员伤亡概不负责。 

你刷晚卡,转身的刹那,听见他又吼起来:"下一头……" 

我汗…… 

蒙娜丽莎型:此类型女性居多(约占10%),且大多面容娇美,通常你一站到柜台前她变笑脸如花,"同学,你好。请问你要些什么呢?" 

"鱼香肉丝。" 

"好的。"她麻利的装好菜,"还要什么呢?" 

"炒白菜。" 

"好的……还有呢?"她依旧温柔的笑着。 

你俯身看菜,见盘子中央装着的菜足足可以撑死五只蚂蚁却喂不饱十只蚂蚁,想叫她再多打些,无奈她笑眼迷人的望着你,梨花带雨,楚楚动人。嘴角的浅笑犹如达芬奇笔下的蒙娜丽莎,这般笑容怎还好意思再有过多要求,即便笑里藏刀也死而无憾了,所以你无奈的刷卡走人,转过身,却听见她的笑声徘徊在整个食堂上空,"你走好……下次再来。" 

我倒…… 

林黛玉型:此类型也是女性居多(约占5%),往往身体纤瘦娇弱,喜欢在用餐高峰期手捏一把小铲,犹如林黛玉手中的花锄,然后眼睛直勾勾望着前方,独自愣愣出神。望穿秋水般的双眸里露出丝丝忧郁,仿佛正在思念她的"宝哥哥"。她身前人头攒动,挤成一堆,而她依旧无动于衷,漠视着前方。终于有人抗议道:"喂……发呆的那位小姐,你到底要不要给我们打菜……不然换人好了。" 

大声地重复了三声后,她方才"醒"过来,还你一个抱歉似的微笑,然后换上伤感的表情,眼里噙满泪水,痴痴地问道:"你爱吃臭豆腐的习惯……今儿可都该了吧?" 

我晕…… 

贾宝玉型:有林黛玉必然就有贾宝玉了,此类型皆为男性(约占15%),且通常本性贪色,少了宝玉的英俊和善良,往往长得五大三粗,是十足脑袋大脖子粗的类型,见到男同学往往给脸色,而见到女同学便献笑脸。且通常打菜时男女待遇极不公平,份量之比:男/女=1/3。让男同胞深恶痛疾。当然他也有温柔的时候,每每遇到身体娇弱的女生,便会关心的问一句:"妹妹昨日吃了我亲手打的红豆莲子粥身子可大安了?" 

我吐…… 

唐玄奘型:此类型其实是女性居多,或许她们本不应该受到批评,因为他们往往对工作有极大的热心和激情。从以下对话便可看出: 

"同学,又来了……今天打算吃什么呢?是鱼香茄子、红烧肉、日本豆腐、辣子鸡……" 

"我要一份炒白菜,谢谢。" 

"是要炒白菜吗?呵呵……其实我早都猜到了,只是还没来得及说罢了。炒白菜好……实在是好东西,而我们的师傅做得也好,你知道吗?白菜里还有丰富的维生素矿物质等,还富含纤维……你知道吗?纤维可是好东西,每当你便秘的时候……多吃纤维就好了……说到便秘,我还得在叮嘱你几句……" 

此时你已快晕厥过去,赶紧打断道:"麻烦再来一份凉拌西红柿……" 

"对,没错……我正要给你说多吃西红柿呢……便秘的时候多吃西红柿,因为西红柿里含有丰富的维生素A、B、C、D、E、F、G……" 

此时她还在喋喋不休,而你分明看见她横飞的唾沫溅入到了锅里及你的碗里,想想,即便再好的美味也无法入口了,于是你决定离开,并且永远不再回来,你转身的瞬间,却听见她关切地问道:"对了……同学,你知道西红柿……也就是番茄,用英语怎么说吗?" 

你赶紧撒腿逃命,天空却依旧想起了致命的歌声:《only tomato》 

黄世仁型:此类型其实是女性居多(约占45%),为服务生中为数最多的类型。虽然他们并无多大罪恶,但说起他们来其实是最最可恶的。他们的表情往往是愤世嫉俗型,给人感觉仿佛谁都欠他妈200块钱却拖了一百年都还没还清一样,脸拉得比生气的骡子还长,让人作日三呕,往往可以让你的食欲从100迅速降到0,她们就有这样大的本事。而且从来不愿多说一句话,多看你一眼,一般都是你先主动问好。 

"你好,小姐,麻烦给我打一份汤……就要这种吧……" 

"别指来指去的,瞧你那脏爪子……" 

"那好……"你强压住火气,"就要那种的……不是……是那种……旁边的……不是……上面的……"无奈她还是没有找对你想要的汤,你又得给汤的准确位置定位,"旁边的……绿豆汤旁边的……不是,是左边的……不对……不是……是左边的……" 

"你没长手吗?"她先急了,"不知道指给我看吗?" 

我靠,不是你不让指的吗? 

最后一种,修女型:这种人占少数,并且也无多大恶习,但也很让人讨厌。他们往往自命清高,漠视世界。往往喜欢在用餐高峰期双手合十皈依佛门,微闭双眼。 

"施主请问想要什么?" 

"绿豆汤。" 

她眼皮都不抬一下,打好汤,向你扔过来,喊一声:"施主刷卡。"依旧不抬眼皮,完全视你为粪土。

中国首部BT短信《BT游记》(三)

61、三藏:悟空,在吗?悟空:在。三藏:八戒,在吗?八戒:在。三藏:悟净,在吗?悟净:在。三藏:小白,在吗?小白:……三藏满足的笑了。 

62、三藏:悟空在吗?八戒在吗?悟净在吗?悟空、八戒、悟净皆无语。走了一程。三藏:三藏,在吗?悟空、八戒、悟净:在。三藏露出了满足的笑容。 

63、三藏:悟空,你会唱曲儿吗?悟空:……三藏:你是不是默认了?悟空:不是!三藏:那你会跳舞吗,我念紧箍咒给你伴奏?悟空:我还是唱曲儿吧。 

64、三藏:八戒,你会唱曲儿吗?八戒:我唱不好。三藏:唱不好没关系,没有人笑话你。八戒:悟空怎么拿着金箍棒瞪着我?三藏:他是想给你打拍子。 

65、三藏:悟净,你会唱曲儿吗?悟净:不会。三藏:唉!悟净,不会唱曲儿怎么能引起姑娘的注意呢?没人注意又怎么能娶上媳妇呢?悟净:要不我试试。 

66、三藏:悟空,你取经为了什么?悟空:脱下金箍儿,重返花果山。三藏:花果山好玩吗?悟空:好玩。三藏:趁你还没摘掉金箍儿,陪我去玩一圈儿吧。 

67、三藏:八戒,你取经为了什么?八戒:洗心革面,皈依佛门。三藏:高老庄的高小姐怎么办。八戒:她怎比得上嫦娥姐姐。三藏:回来时我先去高老庄。 

68、三藏:悟净,你取经为了什么?悟净:攒点钱娶媳妇儿。三藏:我给你介绍一个如何?悟净:真的?三藏:当然,不过我听说女人喜欢会做西餐的男人。 

69、三藏:八戒,我得说说你了,像你这样吃了睡,睡了吃,如何才能取得真经啊。八戒:那我该怎么办?三藏:你可以陶冶一下情操,比如唱唱曲儿。 

70、三藏:悟空,今天怎么没有碰到妖精?悟空:靠!你能不能也让妖精多活几天,让我也休息一下!三藏:那好吧,你先休息一下,我和小白去找妖精。 

71、八戒:三藏为什么总是那么多的话?悟空:有病。悟净:三藏好像总是很无聊。小白:不干活,只吃饭,游手好闲当然话多。三藏:我讨厌听别人说话。 

72、三藏:悟净,你娶媳妇儿的钱够了吗?悟净:还差很多。三藏:我有心成全一桩婚事,你愿意吗?悟净:愿意!三藏:我攒的快够了,把你的分给我吧! 

73、三藏:最近我听说悟空和土地公公联系比较密切。八戒:三藏的消息可靠吗。悟净:我没有听说。悟空:谁告诉你的,我揍扁他。三藏:八戒不让我说。 

74、三藏:悟空讨饭怎么还没回来,八戒打水也没了影子,悟净拾材也是肉包子打狗。只有小白还留在我的身边,小白,我……。小白:我宁愿被妖精抓去。 

75、三藏:大家都谈谈对这顿饭的看法吧。悟空:香。八戒:相当香。悟净:有点香。小白:我没意见。三藏:鉴于大家的一致认可,悟空,你再去讨点吧。 

76、三藏:吃饱了睡觉真舒服。小白:怪不得白胖白胖呢!三藏:小白,此言差矣。论白,我比不了你,论胖,我比不了八戒。唉,苦啊!再给我揉揉屁股。 

77、悟净:我的钱呢?三藏:什么钱?悟净:我娶媳妇儿攒的钱啊!三藏:大家看见悟净的钱了吗?悟空、八戒、小白:没有。三藏:大家都没看见你攒钱。 

78、悟净:终于找到钱了,我还以为丢了呢。三藏:悟净变厉害了。悟净:嗯?三藏:刚才你的钱掉在地上,被我看到了,还没有等我下手你竟然就发现了。 

79、三藏:悟空,我是不是应做点事了。悟空:你早就该干活了!三藏:你说我做什么事好呢?悟空:我头上的金箍儿……三藏:对了,好久没背紧箍咒了。 

80、三藏:悟空,你的草裙舞越来越有进步了。悟空:……三藏:可惜取经后就再也没有机会看了。悟空:到时我一定要看你跳!三藏:好啊,先教教我吧。 

81、三藏误入花园,被一伙人带进了县衙门。知县:大胆刁民,胆敢窥窃老爷我种的花花草草。三藏:大人难道不知道,庄稼一枝花,全靠粪当家吗? 

82、知县:老爷我种的花可是名贵的稀有品种。三藏:难道是传说中的狗尾巴花?知县:师傅好眼力!三藏:想必天下也只有大人才有如此高雅爱好,佩服! 

83、三藏:不知大人的狗尾巴花长出尾巴了吗?知县:没有啊!狗尾巴花还能长出尾巴?!三藏:献丑了。悟空,不要再伪装了,把裤子脱了,露出原形吧。 

84、知县:呜呼呀,我还是第一次见到长出尾巴的狗尾巴花!三藏:唉!可怜我等一路风尘仆仆,粗茶淡饭,不然这尾巴会更长一些。知县:准备饭菜! 

85、三藏:大人是否有意收藏这枝狗尾巴花?知县:太有意了,呵呵,不知长老是否可以卖给我?三藏:送你了!知县:此话当真?!三藏:等我取经回来。 

86、三藏:大人有所不知,此花性情急躁,还需精心培养数日。知县:原来如此,呵呵,就有劳长老了。三藏:只怕这一路的粗茶淡饭……知县:拿银子来! 

87、三藏:大人留步,送花千里,终有一别。知县:真舍不得这狗尾巴花啊!三藏:舍得舍得,舍后才能得啊!知县:言之有理!三藏:大人的钱袋真漂亮。 

88、知县:长老,后会有期,早点回来啊!衙役:大人,你身上只剩下一条裤衩了。知县:你懂个屁,舍得舍得,舍后才能得!三藏:过年不用置办年货了。 

89、衙役:我不明白。知县:有屁就放。衙役:狗尾巴花怎么会长出猴尾巴?知县:笨蛋,吃粗茶淡饭吃的!衙役:那老爷每天都吃大鱼大肉呢?知县:…… 

90、衙役:我不明白,和尚粗茶淡饭,狗尾巴花就能长出尾巴?知县:……衙役:我不明白,老爷大鱼大肉,狗尾巴花竟然长不出尾巴?知县:难得糊涂啊!

郑州城管殴打女生 上千学生围警烧车

月6日晚6点,郑州城管殴打一摆摊的女大学生激起民愤,上千名周围院校的大学生包围公安和城管车辆,一辆城管的汽车被烧毁。学生们纷纷谴责城管的暴行,要求讨还公道。当局出动数百公安及防暴警察,驱散示威者,整个过程持续到凌晨一点左右。被殴打的女大学生现在河南中医院住院治疗。

事件发生后,当地媒体噤声,学生在网站上发出的相关消息旋即被删除。郑州市网络新闻管理中心发出通知,要求各网站论坛"协助删除相关帖文以消除不良影响"。河南财经学院有工作人员称"上面已定性,这是政治事件"。

上千学生围堵警察

据几位目击者透露,周三晚6点左右,郑州轻工业学院一名女大学生,在金水区东风路的街道摆地摊,遭到四、五个城管殴打,一颗牙齿被打落,满口鲜血。周围的人纷纷谴责打人的城管。路过的同校学生发现后报警。武警到达现场后,拘留了一名抗议的大学生。

一位目击者表示,当他到达现场时,发现该女生正躺在城管车下,浑身是血,城管车上也是血迹累累。一男生被警察拘扣在警车内,而那些城管却不知去向。

围观民众异口同的喊:"放人……放人……"警察喊道:"再叫也把你们抓起来!"几百名大学生团团围住那辆白色的警车,要求警察放人。警察叫嚣说:"反了你们了。"双方僵持。更多大学生闻讯赶来要求放人。一个警察和同伙商量后把拘扣的大学生放了出来。

一名大学生喊道:"不能就这么算了,人民不是你想拘就拘、想放就放的",上千名大学生斥责警察,要求领导来正确处理此事。警察对学生们推推攘攘,几欲打人。

此时,两名警察把一个站在前面的瘦弱的学生强力拉进了警车。学生大喊:"警察抓人了,警察打人了……""保护弱势群体……""放人……放人……"但警察迅速钻进警车,再也不出来。有人怕警察开车撞人,便把自己的电动自行车横在了那辆白色的警车前面……

上千名大学生把警车围个水泄不通,要求警察放人,但几个警察坐在车内不动。学生们高喊着要把警车推翻,当考虑到车内还有"人质"时,便拍打那白色的警车,强烈要求放人。几个年轻人试图将警车掀起,把警车移动了5米远。

2007年6月6日晚6点,郑州城管殴打一摆摊的女大学生激起民愤,上千名周围院校的大学生包围公安和城管车辆,一辆城管的汽车被烧毁。

警察威胁 学生怒烧城管车

晚上9点左右,一个中年男子带领一群警察钻进人群,并喊着"谁再起哄就抓谁",说着便拉起一个瘦弱的学生,这种行为再次引起了在场学生的强烈不满,学生们大声呵斥。

那个领头的中年男子大喊着"一个一个给我抓",警察便开始抓人。学生们看见谁被抓了,大家便一起把那个学生抱回来。警察一个一个地抓,他们就一个一个地抱……双方僵持不下。

看到学生越来越多,声势越来越大,那个领头的中年男子一边叫人把被警车中的学生放了,一边恐吓着:"看谁再起哄就给我打。""给我老实点,不然就抓,抓起来好好处理。"

学生获释后,那辆白色的警车随后在众多警察的 掩护下逃离现场。学生们将城管的车辆烧毁以泄愤。当局随后出动数百公安及防暴警察,驱散示威者。整个过程持续至凌晨一点。

据目击学生表示,现场最多时有数千学生。

大学校办:这是政治事件

东风路派出所称,"被打的是一个商贩,不是什么大学生",并称,"具体的,我们不清楚,你们得去问金水公安分局"。

记者再致电金水公安分局,对方承认发生冲突,但称,"没那么多人,只是个别的"。

据几位现场目击学生透露,被殴打的女生来自郑州轻工业学院,但该校校办对记者否认此事。

河南财经学院校办一名工作人员称,"听说了这事儿,但没有我们学校的学生。上面已定性,这是政治事件。今天早上,保卫处来人说没有我们学校的。"

学生:政府有意淡化和隐瞒

郑州市政府周四发出公告,称有一名城管、四名公安被捕,正接受十五天治安拘留;两名属管理层的城管和公安人员被撤职;另外,四名城管及一名公安被记过处分。

公告中并称,"2007年6月6日18时许,金水区城市管理行政执法局东风路中队在清理辖区违章占道农业摊时,与一商贩发生摩擦,引起附近市民和学生围观,导致该段道路堵塞。在处理过程中,巡防队员与个别市民和学生发生冲突。"

一名大学生对此表示气愤,他说,"政府有意淡化和隐瞒,故意不提是女大学生,而是用很轻蔑的语言说是商贩,对打人的事件也一字不提。另外,根本不是个别市民和学生,而是几千人。"

媒体噤声 网络删贴

据学生透露,所有网站都删除了该事件的相关消息。当遭到质疑和指责后,有网站管理员告诉学生:他们收到郑州市网络新闻管理中心的邮件,被要求"协助删除相关帖文以消除不良影响"。

学生义愤难平

事件发生后,学生们纷纷谴责城管的暴行,要求讨还公道。一名郑州轻工业学院的学生表示,"这种城管就是地痞,这种巡警就是流氓……"

"我们是大学生啊,不管在学校里怎么样,我们都是多少能学到如何去做人,如果不允许卖,城管就可以说你违反了什么法规,现在你见过有
蛮不讲理的大学生么?上次看北京有个城管被小贩捅死,说明了什么,谁不知道杀人犯法?!谁没事干了要杀人……不管怎么说一切错都在城
管身上,就是因为他们的野蛮,不文明……"

另一学生说,"学生摆地摊,只为了自食其力挣些生活费用,我们家境贫寒的学生还是很多的,学生这样做如果是违反了那些规定的话,怎么
不教育?或者怎不采取合理的办法来解决?比如给学生规划一个专门的地方……但是城管没有这样做,只是一味的收学生的东西,扔、砸、打
人!听说上半个月已经发生一次,被打者到现在还没有讨还一个公道!"

一名河南财经学院的学生表示,"学生出来做小生意,一般都会很守法的,不会给社会造成什么秩序上的混乱,而且还锻练了自己在社会上的
生存能力,没什么不好的,况且在炎热的夏夜,也丰富了人们的生活,没有一个人因为这事去投诉什么的,市民都知道谅解,有太多真正不合
法的小贩管不了,来管这些没无权无势的学生,真枉为这个称谓,更何况还打人,就太不应该了.还是女孩子,太过分!"
 
-------------------------------------------------
 
我是河南人,见到这种事,真是没天理了都
社会的变质,腐败
人性的丧失,人性的堕落
声讨啊!!!!!!!!!!!!!!!!!

成熟男人最忌讳的十大行为

 
看见人家开公司赚钱,自己还没想好做什么就草草辞职创业,公司先开起来再说,至于怎么做业务,都还在打算中,以为开了公司钱就像自来水一样哗哗流进来。 

年过30,还事业无成,怨天怨地怨父母,怨党怨国怨人民。就是不从自己身上找原因。 其实在任何社会成功人士都是少数,没有成就是正常,但求无愧我心就行。喜欢抱怨的,是幼稚的表现。 

胡子一大把,五短身材肚腩突出,还上套套头运动衫胸前米老鼠下穿牛仔裤,一进电梯就对着镜子捋头发,看见前台喊美女,对着老板叫帅哥。 在成熟美女面前一副深情款款状,没聊几句就倾诉自己受伤的"情史",恨不得剖开自己破碎的心灵,动情处潸然泪下,以为人家不知道他的目的。碰到活泼可爱小美女就黄色笑话不断,还沾沾自喜的自诩"调情水平一流"。 

见到大龄单身美女就追求,以为人家肯定一颗恨嫁的心,凭自己当可以轻松搞定。孰不知既是美女,打小被人追求已惯,能够蹉跎到大龄还是单身,显然目光不低,通常并不会因为年龄增长而稍减,觉得自己能捡个便宜的想法只是白日梦而已。 

爱上一个女孩,把她看成天使般圣洁不可亵渎,看见她和别的男生说句话就醋意大作。在她面前傻乎乎不知道该做什么。以为光靠痴情就能打动对方,被拒绝了几次才终于知道心目中的天使其实喜欢的是泡妞手段高超的流氓男人而且早就被……。(20岁以前的男生多半都有这种经历,也算幼稚的可爱,要是25岁还有这样的想法那就是大脑发育迟钝了) 

看上一套200块钱的西装,左看右看还问服务员:"这个牌子是名牌吗?"或者到街边小店买5块钱一张的光盘,问卖碟的:"你的碟片是正版的吗?" 

自己喜欢的MM是"文学青年",赶紧买来《中国文学史》,和《世界文学史》一通恶补,以为靠这个就能寻找到和MM的共同语言。用教科书里面的观点在MM面前卖弄自己对普希金,叶芝,爱略特作品的深刻"见解"。(again, 20岁以前的男生有这样的表现尚属可爱,比如咱大学班上一男生在心仪女生面前用他的盐城腔普通话背诵"黛玉葬花"。 

和坐台小姐聊一晚,就把小姐当成不幸流落风尘的纯情少女,以为自己可以拯救人家于水火,希望小姐以后能够专心做自己的女友,和自己一起过穷日子。(做小姐的,多半只是因为好吃懒做且贪财,十句话九句半是假话,那种小说看多了抱着不切实际幻想的男人除了幼稚之外没有别的词可以形容) 

一厢情愿的以为凭借自己一张还算顺眼的小帅哥脸蛋就能追到公认的大美女,被拒绝后还忿忿不平。其实人总是追求自己没有的东西,美女一般对这种囊中空空的小帅哥没兴趣。花痴的女人基本上全是恐龙。 

事业上小有成就,得意洋洋的向以前甩过自己的女人炫耀,以为人家会以头抢地悔断肠,其实女人一般心软,会硬下心来甩男人,基本上就是恩断义绝,一点感情都没有了。除非你发财当了比尔盖茨,否则人家才不会因为你这点小成就而有什么后悔。

2007年6月5日星期二

中国首部BT短信《BT游记》(二)

31、三藏:我有点想念观音姐姐了。悟空:没麻烦傻子才想她。八戒:还是嫦娥姐姐漂亮。悟净:不敢有非份之想。小白:老女人,逼我退化,天天咒你老! 

32、三藏:今天有点无聊。悟空:我宁愿无聊。八戒、悟净,无语。小白:理你就是神经病。三藏:悟空,小白骂你有病,你忍了吗?八戒:现在不无聊了。 

33、三藏:八戒,能不能少吃点?八戒:没办法,肚子大。三藏:真的不能?八戒:没办法,馋。三藏:悟空,能不能过来一下。八戒:没办法,该减肥了。 

34、三藏:我决定,再也不多说话了。悟空:当真?八戒:为什么?悟净:没事吧?小白:嘴里起泡了?三藏:没想到大家这么关心我,我取消决定了。 

35、三藏:我决定,再也不多说话了。悟空:哼。八戒:唔。悟净:哦。小白:噢。三藏:你们有意见吗?同意还是不同意,同意吗?不同意吗?说话啊。 

36、三藏:我决定,再也不多说话了。悟空、八戒、悟净、小白,无语。三藏:都不说话了?没有想到我不说你们也不说了,我还是起一个模范带头作用吧。 

37、悟空:有时真想狠K臭和尚一顿。八戒:我可以望风。悟净:说说他就行了。小白:咱们可以趁他睡觉时动手。三藏:对!我睡觉很沉,小白最清楚。 

38、悟空:三藏睡着了吗?八戒:叫叫他试试。悟空:三藏。八戒:三藏。小白:没反应,看来三藏睡着了。三藏:刚才你是在和我说话吗,亲爱的小白。 

39、悟空:小白,这次你别说话了。八戒:三藏。悟空:三藏。小白:……悟空:看来三藏这次是真睡着了。三藏:奇怪?我怎么没有听到小白的声音。 

40、悟空:小白,这次你先叫。小白:三藏。八戒:没反应,这次千真万确是睡着了。悟空:小白,你先下手。小白:臭和尚,我……三藏:小白,是你吗? 

41、三藏:捉迷藏吧。悟空:OK,我经常翻筋斗云。八戒:OK,我经常藏起来。悟净:OK,我经常不说话。小白:NO!我经常驮着臭和尚四处跑。 

42、三藏:你们看前面的女子是妖精吗?悟空:不是。八戒:不知道。悟净:不像。小白:不管。三藏:大姐姐,你如果是妖精就给我们唱个曲儿证明一下。 

43、小白:三藏是不是认为妖精才会唱曲儿。悟空:白痴都这么想。八戒:我没有这么想。悟净:其实小白也会唱。三藏:太好了!小白,晚上尽情发挥吧。 

44、悟空:今天三藏怎么不说话了?八戒:脸色白的和白萝卜一样。悟净:小白,三藏是不是肚子疼呢?小白:没事,昨天晚上臭和尚让我唱了一个曲儿。 

45、悟空:今天三藏怎么还不说话?八戒:脸色白的和白条鸡一样。悟净:小白是不是又给他唱曲儿了?悟净:没有,昨天晚上他自己给自己唱了一个曲儿。 

46、悟空:三藏已经三天没有说话了。八戒:我看还是分行李吧。悟净:找个郎中看看吧。小白:没事,找一个妖精给他唱个曲儿就好了。三藏:要,雌性。 

47、悟空抓了一个妖精:会唱曲儿吗?妖精:会。悟空:唱。妖精:唱完了能放我回去开演唱会吗?悟空:看你的表现了。妖精:能把我的和声也抓来吗? 

48、悟空又抓了一个妖精。两个妖精唱了一个曲儿,三藏没反应。再唱,三藏还没反应。两个妖精被悟空送去了天宫。三藏:真美!我已经被深深的陶醉了。 

49、三藏:悟空,唱曲的妖精呢?悟空:去天宫开演唱会了。三藏:什么时候回来?悟空(寒):不回来了。三藏:也好,下次记得抓两个眼睛大点的妖精。 

50、八戒:三藏喜欢大眼睛的美女吗?我也喜欢。三藏:八戒也有这种嗜好?八戒:是啊!嫦娥姐姐就有一双大眼睛。三藏:八戒,有劳你去月球走一趟吧! 

51、乞丐:师傅,行行好,给点吃的吧。三藏:老人家,我们也是讨饭的。乞丐:讨饭的还穿衣服?三藏:此言差矣,悟空,脱光了给这位老人家看看。 

52、乞丐:师傅,行行好,给点吃的吧。三藏:老婆婆,我们也是讨饭的。乞丐:你们身强力壮还用讨饭吗?三藏:此言差矣,八戒,翻个跟头让她瞧瞧。 

53、乞丐:师傅,行行好,给点吃的吧。三藏:小伙子,我们也是讨饭的。乞丐:讨饭的还挑行李?三藏:此言差矣,悟净,把炊具都放下吧,让他瞅瞅。 

54、乞丐:师傅,行行好,给点吃的吧。三藏:小姑娘,会唱曲儿吗?乞丐:不会。三藏:我们也是讨饭的。乞丐:是吗?三藏:是啊,我们也不会唱曲儿。 

55、乞丐:师傅,行行好,给点吃的吧。三藏:小朋友,我们也是讨饭的。乞丐:讨饭的还骑大马?三藏:此言差矣,小白,给这个小娃娃做一个头部按摩。 

56、妖精:师傅,行行好,给点吃的吧。三藏:小妖精,我们也是讨饭的。乞丐:我只想和你讨点吃的?三藏:你想吃我吗?好说。能不能先唱一个曲儿? 

57、妖精:废话少说,拿命来。三藏:悟空救命。悟空一棒把妖精送到了天宫。八戒:世间又少了一个美貌的妖精。三藏:唉,只为唱个曲儿就把命搭上了。 

58、三藏:前面的那位女子是不是妖精?悟空:不是。八戒:不知道。悟净:不像。小白:不管。三藏:听悟空的,看她一个人多寂寞,我去找她唱个曲儿。 

59、传来一声救命声。悟空:妖精?八戒:赶快分行李。悟净:快救三藏。小白:好像不是那个臭和尚喊的。三藏:姑娘,不要害怕,我只想让你唱个曲儿。 

60、姑娘:师傅,发发慈悲,放过我吧。三藏:你发发慈悲,唱个曲儿吧。姑娘:我唱了,能放我回去听音乐会吗?三藏:你唱完了,我可以陪你一起去听。

刘鑫语录 --看电视

人们看电视,就想学生上课一样,认认真真
学生上课,就像人们看电视一样,漫不经心
 

liuxin9023
2007-06-05

2007年5月29日星期二

微软,我对不起你

微软,我对不起你。从我接触电脑的那天起,从dos6.22一直到现在的windowsxp,我使用的都是盗版。 

  微软,我对不起你。我在社会上这么辛苦地挣扎,每个月的工资竟然连正版的officexp也买不起。就是我咬牙花个几百块买套win98,还是没有售后服务的oem随机版! 

  微软,我对不起你。我不该一边用着你的产品一边骂你们的市场调研员,定价决策人是混帐王九蛋∶你们这不是在卖东西,是在利用法律抢劫。 

  微软,我对不起你。每当你打官司胜利的消息见报,我竟然同情那些使用盗版的小公司,制造盗版的商人们。特别是后者,感觉他们的损失就是我的损失――他们是违法的犯罪,你是守法的犯罪。他们犯的是盗窃罪,你犯的是抢劫罪。 

  微软,我对不起你。我不应该一边白用着你的产品,一边大骂你产品的不稳定――长歌当哭,是要在死机之后的。 

  微软,我对不起你。我不该白白用了你的产品这么长的时间,一点感激之情也没有。不仅如此,我还恨你恨得牙根痒痒,盼着马上有人把linux做得和你的王牌一样好用――其实就是易用性差些也没有关系,大不了我从头学,反复安装――硬盘本不需要格式化,蓝屏见得多了,也就不得不格式化。 

  微软,我对不起你。我竟然免费用着你的ie,还在同情网景。我不应该认为你是个玩sm的**高手,总喜欢在自己的产品里捆绑个这再捆绑个那。仅仅从网景身上,我就知道你所过之地,行业生态肯定会失去平衡。你不是在竞争,是在屠杀。你自己的国家都要对你下死手,把你大卸八块――其实你的捆绑对我是有好处的,花同样的钱,多个功能多份享受。但为什么我总在想,如果网景不推出竞争,浏览器会不会比现在的ie功能更强大,性能更好?起码我有个选择的馀地。 

  微软,我对不起你。我不应该一边用着你的office2000,一边为wps的胜利而高兴。作为一个中国人,我就是摆脱不了这种"狭隘的民族主义情绪"。 

  微软,我对不起你。我不该在看windows的"许可协议"后骂你。我也不该为正版用户花了上千元,才仅仅拥有个软件的"授权使用"而气愤――尽管我用的是盗版,看"许可协议"是多此一举。我早就该了解你,理解你。在上初中的时候我就学过资本家为了利润会不顾一切。对你这只狼,我本不该有任何幻想的。 

  微软,我之所以这样理直气壮地对不起你,是因为你先对不起我∶ 

  你的歧视性高价,侵犯了我的生存权――如果我真白痴到买你出品的正版软件,那接下来的一个月(或几个月)我只有靠自己身上的脂肪生存了。 

  你操作系统中的漏洞,侵犯了我的隐私权――天晓得现在哪个黑客高手正利用系统中的漏洞窃取我给女朋友的情书。 

  你拒不开放源代码,侵犯了我的知情权――有些系统漏洞是外界人士找出来的,还有多少他们没有找出来的呢?你什么也不说,就知道在网上发补丁,增加系统的"稳定性"。 

  你屠杀般的竞争方式,侵犯了我的选择权――我不知道会不会有一天我到眼睛店验光时也会见到蓝屏――那是电脑验光。 

  你产品驴打滚似的更新速度,侵犯了我,特别是企业用户的财产权。――想想那些当年购买正版win98的客户们,才过了六年,就快要连你的技术支持也得不到了! 

  你侵犯了我以上的权利,但我并没有侵犯你的权利――侵犯你权利的是盗版商,至于那"许可协议",完全是不平等条约,我没有遵守的义务。 

  微软,你是优秀的软件公司,你的产品是优秀的产品。然而,我要对你说∶世上没有永远的辉煌,三十年河东,三十年河西。我劝你在linux满大街都是,正版卖到几十元之前仔细想想你自己在中国的定价政策。当然,产品价格的制订权在你的手中。所以在你的产品价格达到我的心理承受范围之前,我只能继续对不起你。

孔子是怎么出名的?

孔子又一脸风尘仆仆地回到老家鲁国,他第一件事还是找鲁哀公推销他的治国之道,鲁哀公正拥着几个美女饮酒嬉戏,看到孔子一脸疲惫相就知道他又是到处碰壁灰溜溜地回来,心里不由得有些怜悯,毕竟是自己的子民,所以他破天荒地招呼孔子一起饮酒,弄得孔子有些不知所措,以为鲁哀公要起用他了,马上兴奋地又要鼓动三寸不烂之舌。鲁哀公见状,连忙抢先开口说:"孔丘,一路辛苦了,我没什么可奖赏你的,赐给你两个美人吧。"孔子一听轻轻地叹了口气说:"吾未见好德如好色者也。" 

有天,孔子上街后回到家里,没想到刚迈进家门,就听见里面一阵打闹声,原来是老婆和两个小妾正扭打在一起,孔子看了看,无奈地叹了口气说:"唉,惟小人与女子难养也。" 

家里是呆不下去了,孔子只好又起身周游列国继续推销他的治国之道。这么多年四处奔波,他很多弟子都累了,宰予有一次白天睡觉被他发现了,他很痛心地说:"朽木不可雕也,粪土之墙不可污也,于予与何诛?"他觉得有必要对弟子们再进行一番深刻的思想教育,所以他说:"饭疏食,饮水,曲肱而枕之,乐亦在其中矣。不义而富且贵,于我如浮云。"他还把颜回当成榜样进行推广,他说:"贤哉,回也,一箪食,一瓢饮,在陋巷,人不堪其忧,回也不改其乐。贤哉,回也!"。 

经过一番思想整顿,孔子的弟子们又重新团结在他的周围继续前进,到了楚国,楚王见孔子一伙人的面貌跟上次比焕然一新,就向他请教如何统治平民。孔子脱口而出说:"民可使由之,不可使知之。"楚王一听有理,便任命他为顾问帮宰相处理政事,孔子不高兴了,当顾问算什么东西,他对楚王说:"不在其位,不谋其政。"他的意思很明显,就是想当宰相。楚王一怒之下把孔子轰出楚国。 

孔子又一路急急往别国狂奔,走到长江边时,望着滚滚东去的长江水,不由长叹说:"逝者如斯夫,不舍昼夜。"是啊,他也是快六十的人了,可至今一事无成。旁边的子路看着老师沧桑的脸,心里不由一阵发酸。他鼓起勇气走到孔子面前说出他酝酿许久的话来,原来他是要孔子把他的言论观点整理成册留传后人,子路知道孔子是"述而不作,信而好古"的,但他也知道如果不把老师的思想用文字保留下来,那后世将无人知晓他们都干了些什么。孔子沉思了许久说,这件事你去办吧。 

子路等的就是这句话,他马上组织其它人进行整理,这下子不得了,他们编述的《论语》、《大学》、《中庸》、《春秋》全部成了后世治国的经典,孔子因此成了永远的圣人。

女人的十三个隐私

 
1、女人为什么要穿高跟鞋? 

因为女人知道她们天生比男人矮一截。穿高跟鞋是为了弥补她们心灵上所造成的这种创伤。 

2、女人为什么要穿短裙? 

因为女人双腿相对男人偏短。穿短裙是为了衬托她们腿部的相对修长。 

3、女人为什么要穿长筒丝袜? 

因为女人腿上汗毛不够发达。穿长筒丝袜是为了掩盖她们生理上的这一欠缺。正所谓,腿上无毛,办事不牢。 

4、女人为什么喜欢穿金戴银? 

因为女人对自己的真实价值缺乏评估力。穿金戴银是为了给她们自己增加心理保障。 

5、女人为什么要热衷于打扮? 

因为女人想要更好地表现自己。打扮是因为她们对自己的这种将要的表现缺乏自信。 

6、女人为什么习惯于讨价还价? 

因为女人不想吃亏。习惯于讨价还价是因为她们觉得自己经常被别人占了便宜。 

7、女人为什么在选择吃猪舌还是吃鸡蛋的时候更多地选择鸡蛋而更少地选择猪舌? 

因为女人在选择吃东西的时候想到了卫生。猪舌是猪嘴里的,她们想到了,而鸡蛋是鸡哪里的,她们很少想。女人总是这样,想一半,留一半。 

8、女人为什么在与男人吵架的时候要比男人声音高大? 

因为女人想要告诉男人她们是强者。声音高大是因为她们想要先声夺人。 

9、女人为什么在恋爱的一开始更多地处于被动? 

因为女人想要看看男人到底有多么出其不意地主动。处于被动是女人玩得一招守株待兔计。只有浪漫的女人才会使用这样浪漫的计策。 

10、女人为什么在结婚后很少联络以前的女性好友? 

因为女人害怕同性间的相互比较。自己嫁得男人好怕被好友嫉妒,自己嫁得男人不好怕被好友嘲笑。如此两难境界,当然是越少联络得好。 

11、女人为什么喜欢逛街? 

因为女人想要锻炼自己。逛街一是为了锻炼身体――生命在于运动;二是为了锻炼意志――买还是不买? 

12、女人为什么喜欢在衣店试穿各式各样的衣? 

因为女人深谙佛靠金装人靠衣装的道理。试穿可以让女人过一把不买而穿的瘾。何乐而不为! 

13、女人为什么喜欢装扮了自己又要装扮别人? 

因为女人觉得只装扮一次不过瘾。装扮别人是为了再过瘾一次。

比越狱更经典的监狱笑话

 
1、爽约与守约 

  两名罪犯在监狱里吃饭时有以下一段对话: 

  甲:"喂,你犯了什么事?" 

  乙:"单方面爽约而已。你呢?" 

  甲:"守约而已。说明白点,你到底干了什么?" 

  乙:"结婚诈骗。你呢?" 

  甲:"职业杀手!" 

2、监狱里好 

  一名越狱犯逃跑不到一天就回监狱自首了。新闻记者问他为什么这样做,越狱犯说:"我好不容易回到家里,我老婆就对我说开了:'死鬼!你从监狱出来后已经5个小时,这段时间你到哪里去了?' 

3、刚出去 

  "13号犯人,快出来,你的律师来见你了!"狱警喊。在赢牌的13号犯人说:"告诉他不能见,就说我刚出去了。" 

4、头颅破裂 

  两个犯人在牢房里聊天。甲问乙:"你结婚了吗?" 

  乙:"结过两次婚,但两个老婆都死了。" 

  甲:"怎么死的?" 

  乙:"第一个老婆吃了毒蘑菇。" 

  甲:"那第二个呢?" 

  乙:"死于头颅破裂。" 

  甲:"太可怕了,到底是怎么回事?" 

  乙:"她不肯吃毒蘑菇。" 

5、怕痒 

  一名罪犯被判绞刑。他哀求刽子手把绞索系在手臂上,千万不要系在脖子上,他说:"我的脖子怕痒,要是把绞索套在脖子上,我自己会当场笑死的。" 

6、告发 

  一个罪犯的妻子要求狱警能给他的丈夫安排一份稍微轻松的工作,她解释道:"他抱怨说他近来一直觉得很劳累。" 

  "但是,他白天什么活也没干呀!"狱警说。 

  "这我知道,但他对我说他连续几个晚上都在挖一个墙洞。" 

7、没办法 

  狱警对刚刚入狱的惯犯说:"我们又见面了。" 

  惯犯:"有什么办法呢?我在任何地方都找不到如此便宜的住所。" 

8、谁最聪明 

  三个死囚时常争辩他们三人之中谁最聪明,行刑的时间到了,第一个被叫了出去,可是他坐在电椅后,却什么动静也没有发生,于是监狱长把他开释了。第二个死囚的遭遇也一样,也开释了。轮到第三个死囚走上电椅,他坐下来之后,监狱长拉了一下开关,依然没有电流,监狱长还没来得及开口,那死囚已经兴奋得指指点点:"唉,你怎么连这个都不懂,你只要把那条黑色的电线和黄色的电线接上就……" 

9、好梦 

  一天早上,两个犯人起床了。 

  甲对乙说:"昨晚我做了一个好梦!" 

  乙问:"怎么个好法?" 

  甲:"我梦见了我忘了交房租,监狱长生气地把我赶了出去。" 

10、全家坐牢 

  监狱长对一囚犯说:"听说你来这里有6年了,怎么家里人都不来探望呢?" 

  囚犯响亮答道:"这不能怪他们,他们谁也不能离开牢房一步,自然无法来看我了。"

抓住男人痛处的19条家规

如今有很多丈夫,天不怕,地不怕,连老婆都不怕,但是就怕不让他玩游戏,抓住了这点,就可以将其纳入可控制的范围。例如这位聪明的太太,就制定了这样一份家规: 

  1.刚回家不准一丢包就坐到电脑前面。 

  2.老婆烧饭或做家务期间,不准玩游戏。 

  3.老婆上床睡觉时,不准还在玩游戏。 

  4.周一至周五在家玩游戏合计时间不得超过8小时。 

  5.周六或周日,在没有陪老婆上街的情况下,不准玩游戏。 

  6.周六或周日,陪老婆上街购物未超过当月工资总额的10%的情况下,不准玩游戏。 

  7.周六或周日,陪老婆上街购物不满意或当街惹火老婆的情况下,不准玩游戏。 

  8.和老婆一起回家,开门没让老婆先进门的情况下,不准玩游戏。 

  9.老婆在外打电话回家,响第三声还没接的情况下,一周不准玩游戏。 

  10.老婆要求下班带水果回家而忘记的情况下,不准玩游戏。 

  11.老婆不开心的情况下,严重不准玩游戏。 

  12.老婆很开心的情况下,要陪老婆开心,也不准玩游戏。 

  13.被发现当天吸烟的情况下,本周不准玩游戏。 

  14.被发现当天喝酒的情况下,本周不准玩游戏。 

  15.晚上出去吃饭而没有提前向老婆请假的情况下,本周不准玩游戏。 

  16.声称在调程序或学习时,被发现在玩游戏的情况下,一周不准玩游戏。 

  17.被发现在看美女图片,一个月不准玩游戏。 

  18.被发现用MSN或QQ等与MM聊天的,一个月不准玩游戏。 

  19.被发现有婚外恋情况的,终生不准玩游戏。

2007年5月23日星期三

YC++

YC++编译器、网页浏览器
下载地址:
http://www.nila.com.cn/yczip.zip

YC,全称是Yang C/C++ Compiler & Internet Browser,也叫YC编译型浏览器,是面向对象和构件的软件开发系统。它具有一种独创的将动、静态编程语言与Web页面相结合的软件开发模式,这种模式,可大幅度提高软件的开发效率及源代码复用率,可大幅度降低软件结构的复杂度,可增加源程序的可读性,从而使软件比较容易维护。
在YC上执行的程序,可在运行中自动且实时地编译、执行、释放C/C++源程序模块;能动态地调入或释放各种二进制功能模块,如控件。做到代码即调即用,节省内存。
使用YC可以开发各种应用软件,例如,图形图像软件、财务管理软件、通信软件、网页生成软件、中间件软件、数据库软件等等,总之几乎所有的软件,YC都能开发。YC不但比其它工具容易使用,而且还具有许多其它工具所没有的重要功能。
YC不仅是软件生产线,还是软件组装线。它可以把任何人开发的程序"零部件",包括COM代码部件、DLL代码部件、C/C++源程序部件等,组装成任何软件。组装调试极其方便,因为软件的各部分可以互不干扰地独立地而又不失联系地运行,而bug定位又非常容易。
YC还具有Internet网页浏览功能,有望将来替代目前流行的IE浏览器。如果用YC把各种应用软件嵌入在Web页面中,那么,用户只要点击链接地址,立刻就可以执行存放于世界各地的服务器中的任何软件,并可以实时地与服务器进行交互通信,而服务器可以通过一定的方式控制用户如何使用其软件。


YC 的组成:
1.HTML解析器
2.XML解析器(目前完成一部分)
3.javascript脚本解释器,C/C++脚本解释器
4.C/C++编译器
5.文本及二进制编辑器。


YC 的特点:
1.提供了将 C/C++ 源代码优化地转换为任何8位、16位、32位、64位CPU机器码的接口。
2.扩展了关键字auto。只需声明,便可完全像调用普通函数一样地调用动态库中的函数。
3.在执行文件中自动嵌入YC编译器,可实时地执行C/C++源代码,使最终用户无需经过开发商就能任意改进产品。
4.使HTML支持脚本化的标准C/C++语言。
5.使javascript能调用C/C++源代码或DLL库中的函数。
6.使C/C++能调用javascript语句。
7.使在web页面中可嵌入任意多个用C/C++编写的窗口,且这些窗口可与web页面进行交互操作。
8.能直接将源代码优化地转换为可在YC虚拟机中执行的字节码,实现与平台无关编程。
9.很容易扩展C/C++新语法。
10.使C/C++及javascript语言支持中文变量名和中文函数名。
11.使javascript支持goto语句。
12.生成的执行文件具有病毒免疫力。
13.编译器体积小,编译速度快。
14.增加执行C/C++函数的HTML标记<%func()%>。在C/C++函数中执行printf后的输出文本可自动插入到HTML中。
15.用户以前编写的C/C++程序,稍加修改便可嵌入到web页面中。
16.自动检测堆栈是否溢出,资源是否泄漏。
17.可先用HTML、javascript及DOM实现软件界面(包括主窗口、工具条和对话框等)的布局和表现,再用C/C++实现界面的程序逻辑。


YC把C/C++编译器嵌入到HTML解析器中,使网页支持C/C++语言。从而可以通过使网页,C/C++静态语言和javascript动态语言相结合的方式来开发各种应用软件。
YC也可以按传统的编程方法将源程序编译生成执行代码。

YC++编译器、网页浏览器
下载地址:
http://www.nila.com.cn/yczip.zip

中国人的浏览器内核?

 
我们的这位主人公名叫杨晓兵,毕业于南京理工大学、中科院研究生院、中科院电子所,现任北京尼拉视频科技有限责任公司总经理。可能很多人都并没有听说过这家公司,包括我之前也没并不知道,其实他们是专业研究广播电视设备开发、生产、销售的企业。

记者:您的公司是做视频应用软件的,为什么会转而开发C/C++编译器和网页浏览器内核这两个产品呢?

开发视频软件的过程中发现国内应该有自己的基础软件,只有基础软件发展了才能提高整个软件产业的水平,国内正缺少好的基础软件,应用软件开发的再多也达不到一定的高度,只有基础软件发展了才能提高整个软件的水平。所以在继续做视频应用软件的同时主要由我来开发这两项产品。

记者:您的C/C++编译器和浏览器内核是你第一次完成的产品么?用了多长时间完成的呢?准备为它起一个什么样的名字?

不是,我曾参与完成国家重点八五攻关项目,独立开发了至今仍然畅销的图文制播系统和硬盘播出系统。六年前开始研发HTML解析器、Javascript解释器等,Internet浏览器内核,后来又开发了基本符合ANSI标准的C/C++编译器,该编译器既可以独立使用,又可以嵌入到HTML解析器,还可以和HTML解析器一起嵌入到IE浏览器。暂时命名为YC++。

记者:您的软件开发生涯分了哪几个部分?哪一部分的成长经历是最让您难忘或者受益最大的?哪一个部分又是让你最有成就感的?

大体有三部分:第一阶段:在DOS下开发各种产品,包括图文制播、YCDOS;第二阶段:在Windows下开发图文制播系统和气象软件等;第三阶段:开发c++编译器网页浏览器内核。 受益最大从技术上来说第三阶段最大,经济上第二阶段最大,第三阶段最有成就感。因为这个产品填补了国内空白,在国际上也属于领先水平。

记者:你进行自主开发产品的初衷是什么?你的经历对你完成的这个产品有怎样的影响?您成长的环境对这个产品又有怎样的影响呢?


当浏览器刚刚出现在市场上,我就想开发这个产品,直到2000年我才开始做这个产品。在开发过程中发现浏览器内核用于一般软件的开发将会非常方便,于是我又开发了C/C++编译器使它嵌入到浏览器内核之中。使得这个产品成了一个软件生产装配线,使软件开发效率大大提高,略微懂得开发软件的人就可通过组装各种软件模块,可以生产大规模的复杂软件。

由于一开始做了多年的硬件研发,这些经验使我对计算机系统非常了解,对软件发很有好处,我所处的环境,一开始和很多科研人员一起合作,后来独自一人开发,这六年生活在比较幸福的环境里,开发没有什么后顾之忧,才能很顺利地完成。

记者:您的产品最主要的功能和最大的特点是什么?

YC 的特点:
1、提供了将 C/C++ 源代码优化地转换为任何8位、16位、32位、64位CPU机器码的接口。
2、扩展了关键字Auto。只需声明,便可完全像调用普通函数一样地调用动态库中的函数。
3、在执行文件中自动嵌入YC编译器,可实时地执行C/C++源代码,使最终用户无需经过开发商就能任意改进产品。
4、使HTML支持脚本化的标准C/C++语言。
5、使Javascript能调用C/C++源代码或DLL库中的函数。
6、使C/C++能调用Javascript语句。
7、使在Web页面中可嵌入任意多个用C/C++编写的窗口,且这些窗口可与Web页面进行交互操作。
8、能直接将源代码优化地转换为可在YC虚拟机中执行的字节码,实现与平台无关编程。
9、很容易扩展C/C++新语法。
10、使C/C++及Javascript语言支持中文变量名和中文函数名。
11、使Javascript支持goto语句。
12、生成的执行文件具有病毒免疫力。
13、编译器体积小,编译速度快。
14、增加执行C/C++函数的HTML标记<%func()%>。在C/C++函数中执行printf后的输出文本可自动插入到HTML中。
15、用户以前编写的C/C++程序,稍加修改便可嵌入到Web页面中。
16、自动检测堆栈是否溢出,资源是否泄漏。
17、可先用HTML、Javascript及DOM实现软件界面(包括主窗口、工具条和对话框等)的布局和表现,再用C/C++实现界面的程序逻辑。
18、可做与平台无关的软件界面。

记者:国内有像Maxhon、Gosurf这一类的IE外壳浏览器,那么您为什么会想到做浏览器的内核?

外壳和内核不一样,中国还没有浏览器内核所以我要做。外壳谁都可以做,难度不大,但是内核是基础,难度相当大。我们的产品可以比现有的内核做得更好、更有特色,满足更多的需要。

记者:和国外的Windows下IE的内核Trident、Firefox的内核Gecko、Opera的内核Presto等这些知名产品比起来,您认为您的浏览器内核的优势在哪里?

在基本上兼容他们的情况下,增加了软件开发功能和运行环境,将来还可以方便扩展。

记者:平时除了写程序之外还有怎样的爱好?这些爱好对你在软件方面的造诣有何影响?

爬山、旅游、看专业书,这些爱好可以使我放松,头脑一直处于清醒状态, 避免大脑处于钻牛角尖的状态,做到劳逸结合。

记者:您对自己软件生涯的最大的理想是什么?现在是否已经启动?对这两个产品今后的发展有什么样的蓝图向我们描述?希望它能走到哪一步?在推广这个产品的过程中你想得到怎样的反馈呢?也就是您希望能从这两个产品身上得到什么。

成为世界级的软件专家,理想已经启动数年。使这个产品在中国普及,同时能推向国际市场,提高中国的软件开发水平。希望有广大软件爱好者共同参与。结交许多志同道合的朋友对中国的软件具有较大的贡献。

结束了这次采访,杨晓兵又很快的投入到了忙碌的开发工作中。其实国内有很多很多的有志之士,他们清楚的认识到了中国软件产业发展的现状和存在的诸多问题,比如国内软件企业总体规模太小;绝大多数的企业仍以从事定制项目和一般应用软件的开发为主;独立发展的竞争力很弱;没有良好的市场环境在夹缝中寻求发展,多数已沦为给国际性大企业输送人才和做小型外包项目的地方。

所以不断的有杨晓兵这样一批批的人站起来,希望发展中国自己的软件产业链,建立国产的基础软件环境,为中国的软件做出真正意义上的提高。我们祝愿视比尔盖茨和James Gosling为偶像的杨晓兵能带着他的产品走的更远,中国的软件产业也能走的更远、更清晰。
【撰文:马沛】

我博客访问来源的一些好玩之处

访客操作系统
操作系统名称 所占比例 - 总访问量
Windows XP 84.4% - 49
Win2000 5.1% - 3
Other OS 5.1% - 3
Linux 1.7% - 1
Windows 98 1.7% - 1
Windows Vista 1.7% - 1
Windows Server 2003 0% - 0
Unix 0% - 0
Windows 95 0% - 0
Windows 0% - 0

(注:看来xp还是主流啊,84%都是XP的;2000用的人还算不少,不过和XP比还是不行;other OS不知道是不是MacOS,再其它的觉得不太可能吧;还有vista,这个还可以理解,不过显然不如XP,不在一个等级上嘛;最让我觉得惊奇的是,居然有win98,这也太不可思议了吧,都啥年代了,还有人用98,倒啊,狂倒啊!!!)
浏览器分布
浏览器名称 所占比例--总访问量
MSIE 6.0 53.5% - 30
firefox 23.2% - 13
MSIE 7.0 17.8% - 10
MYIE(Maxthon) 5.3% - 3
Other Explorers 0% -
为什么不列其他浏览器啊,比如说我用的是Greenbrowser,为什么不列啊,就说是IE核心吧,那Maxthon怎么就单列出来了?

2007年5月22日星期二

哲学博士遇绑匪

事情发生在5月9日下午,我将自己的车停在路边绿化带旁,和女友坐在车里聊天,突然有个男子拉开车门坐进来。 

"干什么?"我问。 

"没看出来吗?绑架,把钱和手机掏出来。"男子掏出一把刀,抵在我胸前,恶狠狠地说。 

"真没看出来。从法律意义上说,绑架是指利用被绑架人的近亲或者其他人,对被绑架人安危的忧虑,以勒索财物,或满足其他不法要求为目的,使用暴力、胁迫或者麻醉方法劫持,或以实力控制他人的行为。当场叫人家把财物拿出来,这不叫绑架,叫抢劫。" 

男子一愣,随即说:"成,就按你说的办。打电话给你家里人或朋友,叫他们送10万元来。" 

"你这话就不对了,对被绑架人安危忧虑的人,并不能和家人朋友画等号,有些家人视同陌路,有些朋友背后捅刀,打电话去不是白打了吗?" 

"那……对你安危最忧虑的人是?"绑架(我想现在可以称他为绑匪了)问。 

"这还用说,当然是我女朋友。"我指指身边的女友。 

"你拿10万元来赎他。"绑匪把刀在我女友脸前晃了晃。 

"他不是也被你绑架了吗?哪里去拿10万元呀?" 

"对啊,"绑匪不好意思挠挠头皮,对我女友说,"那你给肯为你出钱的人打电话。" 

"那个人就是我呀。"我说。 

绑匪看看我,又看看我女友:"那怎么办啊?" 

"好办啊,如果我女朋友在别处,就有个对我安危忧虑的人可以给你筹那10万元。"我指点他。 

绑匪沉吟半晌,对我女友说:"好,你走。记住,不准报警。" 

等女友进入安全地带,我哈哈大笑起来:"哈哈,你真傻啊。" 

"傻?她敢报警,我就要你的命,反正老子豁出去了。" 

"不是啊,我是笑你为什么有20万元不赚,只要10万元呢。" 

"嗯?" 

"你想想,让我女友去拿我的10万元赎金,加起来就有20万元了。" 

绑匪恍然大悟,一拍大腿:"哎呀,妈呀,对呀,我昨就没想到呢。大哥,你对我太好了。我绑架你,你咋还好心给我出主意呢?" 

"这年头,挣点钱,大家都不容易啊。" 

绑匪热泪盈眶,要握我的手,突然缩回去:"不对,你们都走了,我绑架谁去?" 

"我们不是已经被你绑架了吗?" 

"是啊,但是……" 

"别但是了,这里不还有辆车吗?光这车也不止20万元呀。" 

"大哥,你可别忽悠我,车这玩意儿我不懂,真值那么多钱?" 

"这车刚买的,发票在身上呢。"我把发票递给他看。 

"妈呀,25.5万元,大哥,你真够诚实。你就放心去吧,我在这里等你,保证不把你的车开走,咱们不见不散。" 

"好,不见不散。" 

一个小时后,我们在派出所再度相见。绑匪哭丧着脸:"大哥,早告诉我你是哲学博士呀。"

2007年5月17日星期四

银行工作中笑死人的笑话

核心提示:虽然银行是一个需要庄重的地方,但它也有生动的一面。 
虽然银行员工是需要责任心的,但他们也有可爱的一面。 
将银行工作中的笑话,讲给银行员工听,希望大家笑口常开。 

一,以前存钱是要客户填凭条的,为了清楚地告知客户如何填写,我们填了一张存款的模板,户名暂写"王XX",有客户来办理业务,照着写好后交给我们一看,大笑,凭条上户名栏竟写"李XX"。事后为了不再"误导"客户,我们决定把模版上的户名写全,便编了一个"钱来存"的名字,谁知天外有天,人外有人,一客户填凭条时竟填了个"钱来取",且聪明地说:"你们存钱单上写'钱来存',我取钱肯定是写'钱来取'了。"佩服佩服。 

二.一日电话突响,柜员忙接,对方问:"您贵姓",这位赵姓柜员慌中不乱:"免赵姓贵"。 

三,每天都在重复那几名话,掂来就说,顺畅流利,但到了下午,或有时心不在焉的时候,便开始胡言乱语。电话一响,拿起电话就说:"您好,请问你办理什么业务?"。让客户签名时,本该说:"请您在右下角签名",却一边递凭条一边顺口说:"请您看好给您复点一遍",到了真该为客户复点现金时,却又说;"请您看好,在右下角给您复点一遍。"可好,刚才忘说的右下角跑这来了。 

四,一日大堂经理向一客户推荐我们的网上银行:"你天天都来看行情,不如用我们的网上银行吧?"那位客户却说:"不行,我晚上没时间。"大堂经理说他那天笑的脸疼。 

五,客户经理那儿天天人满为患,一日又来一客户,到了客户经理那儿,看也不看拉过桌子旁边的电脑主机便坐了上去,客户经理不好意思地说"这上面不能坐。"那客户忙站起来说:"还想着是个小凳子呢,坐上去热乎乎的。" 

六,一日叫一客户签名时,他一脸茫然,我便指着凭条上流水号下面打印的名字说,照着这三个字签就行,他拿过去摸索了半天,递过来一看,三个字:"流水号"。 

七,一青春漂亮女子来办理业务,输入密码时,多按一位,提醒她密码是六位,她说就是六位呀,仍按仍多,N试不行,最后没办法,只好不好意思地对她说:"你先数数是六位数吗?"她愣我一眼,尖嘴钢牙地回答:"5666888咋不是六位。"晕啊! 

八,一日,一醉酒者摇摇晃晃走进营业大厅,坐在椅子上瞪着不停滚动的基金行情表看了几分钟后,不满地对我们大堂经理说:"不好看,换台!"营业厅一片爆笑。 

九,另有醉酒者来办理业务,忘了密码,银行员工提示他打电话问问家人,他哦了一声,立即拿起密码键盘按了一串数字后,问:"话筒呢?"笑的叉气。 

十,一客户存钱,柜员问:"您是存定期吗?",他立即扭头问起妻子:"我们要定期还是死期?",妻子答:"先死三年吧!"强忍不敢笑。

2007年5月16日星期三

博士MM的超强爆笑“流氓”语录

 
认识一博士MM,娃娃脸,韩式发型,怎么看怎么像一乖乖巧巧的在校大学生。不过,她一张嘴,通常是满座皆惊。某次聚会,一自称见多识广的哥们把我拉到一边,问:这MM是干什么的。我说在读博士。哥们说:我的娘唉,流氓专业的博士吧。

这里曝光下MM的语录----


1、氧化钙。MM很博学,在表示蔑视的时候,不说靠,而说氧化钙。一哥们问氧化钙啥意思。MM说:CaO。该哥们比较呆,继续问是啥意思。MM说就是CaO的汉语拼音。该哥们依然不明白什么意思,MM大吼一声:操,非逼我说粗话。


2、MM身材很好,挺胸翘臀,很性感的样子,不免就有男生蠢蠢欲动,MM是那种说话开放行为保守的两面派。MM的男同学大都是三十岁以上的老男人。(MM认为人过了三十就可以成为老了,她自己常常哀叹自己老之将至,还没有毕业上班,更不能奢想退休了)有一艺术学院的色男,泡妞技术极高,就去泡博士MM。博士MM很直接地问他:你带安全套了吗?色男说带了,MM就立刻很嘲笑的说:看来你是有备而来的了,和我磨叽这么长时间就为了上床呀。
色男就讪讪的说,开玩笑呢,没带。MM立刻更嘲笑的说:想和MM上床连安全套都不准备,真是个不负责任的男人。色男无处遁逃,还做最后的挣扎:我结扎了。MM说:你有性病吗?色男说:我没有。MM说:你说没有就没有了阿,有证明吗?色男被绕昏了头说:我每次都带安全套。MM大笑问:你带安全套了吗?……如此循环三遍,色男落荒而逃,还有一个后果是,有一个月的时间,色男见了安全套就阳痿。


3、一次聚会,有一暴发户在场,大谈自己如何有钱,说现在的社会钱代表了一切,就没有钱办不成的事情。MM立刻甜甜的一笑:给你一千万,麻烦你帮我把我二舅的照片放大了挂天安门上吧。 (强悍吧!!!)

4、有一做安利的哥们推销安利牙膏,凭良心说,这牙膏还是蛮好的。该哥们按照该公司设计的推销方式做宣传。就是拿个牙膏纸盒,一边挤上安利牙膏,一边挤上别的牌子的牙膏,然后用牙刷分别刷一刷,再把牙膏擦去。结果是涂了安利牙膏的这边毫发无损,而涂了别的牌子牙膏的那边则略有磨损,用以说明安利牙膏不损伤牙齿釉面。哥们做完实验举着盒子大声问大家:这说明了什么。MM大声回答:证明安利牙膏刷牙刷不干净!该哥们当场晕倒。

另有一姐们推销面膜,其宣创方式是给人右边脸蛋涂面膜左边边不涂,洗干净后,让人双手放在脸蛋边同时扇风。通常人们感觉右边风大,该姐们就趁机说:做完面膜后,清透了毛孔,感觉自然灵敏了。这种方式推销了不少面膜。有次不幸遇到了MM,MM说:左边风大。该姐们说:你感觉的不对,你再感觉感觉。MM大声说:不用感觉了,普通人都是右手手劲大,所以感觉右边风大。我是左撇子,你该给我涂左边脸蛋。该姐们从此发誓再也不推销面膜了。


5、有一姓王的哥们,伶牙俐齿,经常调笑别人。某次吃饭,有位姓侯的哥们,王哥们就问:您是哪个侯?侯还是候,中间有没有那一竖。搞得侯哥们面红耳赤。MM在一边看不下去,就说:哥们,你姓王还是玉啊。王哥们说:王!MM说:哎呀,我记错了阿,我以为你下面有那一点呢,原来你没有啊。全座笑翻。


6、还是该王姓哥们,一次开MM的玩笑说:我一看到你就想奸杀你。MM说:通过奸来达到让对方死的目的,该需要多强的体力阿,我怕你体力不支,你还是用普通方法杀死我算了。王哥们顿时脸若红布。


7、有个男生追求MM,没有追上,后来又找了个别的院系的女朋友。其女朋友很能吃醋,有一天和MM在校园里狭路相逢,这个男生的女朋友拦住MM说:知道吗,现在我们谈恋爱了,希望你不要再骚扰他。该男生低头不语。MM说:哦,恭喜恭喜,这个男人虽然是已经被用过了,但是没有损坏,功能尚可,你不要嫌弃,凑合着用吧。哪个女朋友当场气晕。


8、MM对付色狼常用的一句话是"我有爱滋我怕谁"


9、MM嘲笑人没见识的时候常说:"没见过猪跑还没吃过猪肉阿"仔细一想,还真是这么回事。现在孩子,吃过猪肉还真未必见过猪跑。

一堂暴强的历史课

  在一所来自世界各地的大学里的历史课上,教授正在向来自各国的同学提问:"要生存还是要灭亡。这句名言出自谁的口中? "
  
  沉寂了半天之后,古田站起来说:"威廉・莎士比亚。"
  
  "很好,被誉为"欧洲的良心"是指谁?
  
  "罗曼・罗兰。"
  
  "要么给我自由,要么让我死。这句名言最早出自谁之口?"
  
  "1775年,巴特利克・亨利说的。"
  
  "很好,那么,'民有、民治、民享'是谁说的。"
  
  "1863年,亚伯拉罕・林肯说的。"
  
  "完全正确,同学们,刚才回答问题的是位日本学生,可是作为欧洲国家的学生却答不出来,太遗憾了。"教授不无感慨的说道。
  
  "干掉小日本!" 突然有人发出一声喊叫。
  
  "谁!谁说的!"教授气得语音都颤抖了。
  
  "1945年,杜鲁门总统说的。"约翰站了起来。
  
  "你以为自己在干什么?"教授生气的说道。
  
  "麦当娜说的。"杰克也站了起来。
  
  "这真叫人恶心,简直无法无天了。"教授浑身气得发抖。
  
  "1991年,老布什会见韩国首相时候说的。"斯蒂芬也坐不住了。
  
  课堂立刻陷入了混乱之中,所有的学生都开始议论纷纷,一些学生开始起哄:"哦耶 ! "
  
  "克林顿对莱温斯基说的。"玛丽毫无表情的接话道。
  
  整个班级都陷入混乱,一些学生冲古田高喊:"你这泡狗屎,你再敢说话我就把你干掉。" 
  
  "2001年,盖瑞・康迪特对莱薇说的。(注:莱薇系白宫实习生,2001年被谋杀于华盛顿。其前男友、民主党人康迪特做为嫌疑人被拒捕) 
  
  教授愤怒得说不出话来,隔了一会,他大踏步的向门外走去,到门口时,他冷冷的看了所有人一眼:"我会回来的。"
  
  "阿诺得・施瓦辛格说的。"鲍勃终于插上话了。
  
  古田委屈的一摊手:"我没做什么坏事,为什么会这样?"
  
  "张国荣说的。"李小丽一脸崇拜的神情回答
  
  所有的学生都围成一个圈,汤姆有些垂头丧气:"该死,我们完了。"
  
  "希特勒说的。"伊汉诺娃立刻回答。
  
  一个学生说:"他*的,这回我们有大麻烦了。" 
  
  "2002年,亚瑟・安德森说的。"简回答道。
  
  (注:亚瑟・安德森,安达信会计事 务所,美国五大会计公司之一,2002年因为安龙丑闻而陷入倒闭境地)
  
  赖特叹了口气:"今天将是一个很有意义的日子。"
  
  "本・拉登说的。"克瑞斯终于为自己能说出一个名字而得意。
  
  "这决非是我最得意的一天。"古田惭愧的说着。
  
  "托尼・布莱尔说的。"已经不知道谁在回答。
  
  这时校长和教授一起进来了,他脸色铁青,几乎是一字一顿的说道:"你们要为此付出代价!"
  
  "斯大林说的。"全班同学异口同声的回答。
  
  校长和教授晕倒......

十岁二十岁和三十岁

1.十岁时,讨论女生 
二十岁时,爱慕较成熟年龄较自己稍长的妩媚女人。 
三十岁,喜欢二十出头的俏丽女孩,甚至更年轻的美少女…… 

2.十岁:搜集各式好看的火柴盒。 
二十岁:身上总有些西餐厅的火柴盒。 
到了三十岁(假使当时尚未结婚),家里到处扔著CLUB和PIANOBAR的火柴盒…… 

3.认真倾听他人说话而且相信,是在十岁之时。 
不太认真听,也不太相信是二十岁。 
很会认真倾听,分明不信,脸上却假装相信是在三十岁。 

4.十岁时的十元等於一元 
二十岁的一百元也等於一元 
三十岁的一千元还是等于一元 
不是钱贬值的那麽厉害,而是用钱的派头越来越阔绰。 

5.小狗是你十岁最好的朋友。 
美丽的女子是你二十岁最想要的朋友。 
股票、银行存摺和土地、房屋权状是你三十岁时最信赖的朋友 
(最後这点,同龄的女人似乎实践得比男人彻底)。 

6.看『梁山伯与祝英台』的电影………….,不禁潸然泪下是在十岁。 
因剧情感动而眼眶红红是在二十岁。 
觉得这对恋人未免太缺乏「抗争」智慧是在三十岁。 

7.十岁:不管上演什麽,只要走进电影院就高兴得手舞足蹈。 
二十岁:精挑细选片子,早早到场排队(最好旁边还有女友陪著)。 
买不到票时可不看,也不愿与黄牛交易。 
三十岁:任凭老婆央求,也只想待在家看录影带。 
即使上电影院,也是快开演到场 
如果票已售罄,便四下寻找,「黄牛在那里?」 

8.电影片头「唱国歌」时,跟著大声合唱是在十岁。 
肃立,但静默听著戏院内的扩音喇叭高唱国歌是在二十岁。 
在休息室抽烟闲聊,等片头「唱国歌」结束再进场是三十岁。 

9.十岁的你运动是为了好玩。 
二十岁的你运动是种发泄。 
到了三十岁,通常为减肥而运动。 

10.十岁:快乐的踩自行车。 
二十岁:疯狂的飙越野机车(我还是破脚踏)。 
三十岁:稳稳当当的开四轮轿车。 

11.十岁时:你的身高仅差营养远不及你这一代的叔叔、伯伯一点点…… 
二十岁时:你已远高过你的叔叔伯伯…… 
三十岁时:很不甘愿地看著营养远胜於昔日的你的这一代十岁小孩(或者他们就叫你叔叔伯伯)一个个比你在十岁时(甚至现在的你)还高大 

12.十岁时,父母不准你在外过夜。 
二十岁,搭起帐篷充分享受露宿野外的乐趣。 
三十岁,当然是住在家里最好,外宿时也得找有冰箱电视和空调的高级饭店。 

13.十岁时,买文具玩具给自己…… 
二十岁,买鲜花卡片给女友…… 
三十岁,买奶粉尿片给孩子…… 

14.十岁时,喜欢看骑兵队打红番。 
二十岁,喜欢看红番打骑兵队。 
到了三十岁,管它骑兵队,管他红番,管它谁打谁,反正事不干己。 

15.十岁:相信老师说的真理。 
二十岁:相信自己所认同的真理。 
三十岁:世事吊诡,不相信有绝对真理的存在。 

16.十岁、二十岁,人家以成绩单和你所念的学校来评定你的优劣。 
三十岁,人家以你所服务的公司和你薪水的高低定你有没有出息。 

17.十岁时用拳头摆平敌人。 
二十岁时用舌辩说服敌人。 
三十岁时尽量不替自己制造敌人,万一真有敌人的话嘿……嘿…… 

18.十岁时的志愿:想当名留青史的伟人。 
二十岁:只想当自己。 
三十岁:不管当什麽只要是有钱人就行。 

19.十岁时,墙上挂著装框裱起的模范生奖状。 
二十岁,改悬挂拍的很好看的个人独照。 
三十岁,又改成股价走势图。 

20.十岁时,桌子的玻璃垫下,压著「有志者事竟成」--虽然你还不太懂这句话! 
二十岁,压著「既是过河卒子,只有奋力向前」--这时,你当然知道为什麽会压这句话! 
三十岁时不再压任何东西--反正不管压什麽「格言」,对你都不再起激励作用,你心知肚明自己大概做不到了。 

21.十岁时为缴作业而写日记。 
二十岁为记录自己的生活思想行为和感情而写日记。 
三十岁生活淡得出鸟来还有什麽日记好写。 

22.接到信马上回覆是在十岁。 
视亲疏远近轻重缓急(当然是以回覆女孩子的信为第一优先)决定回信时间是在二十岁 
不想写信(这样一来信当然也收得少),偶尔接到信时一搁三两个月最後还是找出通讯录以电话代替回信是在三十岁。 

23.十岁时只能穿妈妈买的强力太子龙学生服。 
二十岁爱穿自己打工买的BIGSTONE牛仔裤。 
到了三十岁不穿印有「动物」标志的高级服饰就觉得怪怪的。 

24.十岁:看大人抽烟觉得很无聊。 
二十岁:不抽烟怎像个大人呢。 
三十岁:烟瘾奇大,却又接收太多抽烟致癌的资讯,徘徊在抽烟与戒烟之间…… 

25.十岁时喝养乐多(因为它甜蜜)。 
二十岁喝可口可乐(因为它时髦)。 
三十岁喝矿泉水和纤维饮料(因为--为了自己的健康著想)。 

26.十岁:没有失恋这回事。 
二十岁:不相信失恋这档子事会发生在自己的身上(万一发生了醉後嚎啕大哭一场)。 
三十岁:在还没失恋前就已和另一位女子再谱一段新恋曲…… 

27.十岁时,看到男女谈情说爱会说:羞、羞、羞。 
到了二十岁,见到别人火辣辣的谈恋爱而自己身畔犹虚会说:恨、恨、恨、怨、怨、怨 
年过三十已婚者看到正热恋中的情侣会说:羡、羡、羡 
至於未婚不幸又从来没有这种经验的人,大概只能说:难、难、难,不如忘、忘、忘 

28.十岁时希望自己快快变成二十岁。 
二十岁期盼自己能够有个功成名就意气风发的三十岁。 
三十岁,唉,不管当时过的如何,一想到人生竟这样消逝大半,都希望能够从十岁再开始 

29.关於这篇文章-- 
十岁的孩子看不懂。 
二十岁的青年可能斥为荒唐。 
而已届三十岁的男人,不管吻合上面所写的那些条(抑或连一条也不适用於他),该都对这些内容想一想、笑一笑。

2007年5月9日星期三

MM侃价全过程

      梨子:老板,请问这条裤子多少钱?  
  老板:180元,福州正宗货,要不要?  
  小梨子:我先看看.  
  老板:别看了,东西是好东西,给你优惠点170元。  
  小梨子:这也叫优惠啊?
     老板:呵呵,好吧就140元,这回可以了吧。 
  小梨子:哈哈,哈哈,我笑! 
  老板:你笑什么,难道嫌贵? 
  小梨子:不,何止是贵,简直就是用水泵抽我的血! 
  老板:哪里有那么夸张,看你是本地人就120元吧。 
  小梨子:.
      小梨子:90元。 
  老板:天啊,你开玩笑,赔死我了,再添10元。 
  小梨子:没的添,我很想给你120元,可无能为力。 
  老板:好吧,交个朋友,你给90元拉倒。 
  小梨子:我不会给你90元的,我还要留10元的车费。 
  老板:车费?这和你买裤子有什么关系? 
      老板:你不会还嫌贵吧,我最多只挣你几块钱。 
  小梨子:不,我没有说贵,这条裤子值这个价钱。 
  老板:你真有阳光,快买吧。 
  小梨子:裤子是好裤子,只是我口袋里的票子有限啊。 
  老板:那你口袋里有多少钱啊?
      老板:虽然我看不出来你的真诚,但我认赔了,算你80元好了。 
  小梨子:等等,我还要补充一点,我还没有吃早饭,我很饿。 
  老板:你!天啊,你太过分了,你在耍花招。
      小梨子:相信我,我很真诚。如果再不吃饭的话,我会昏倒在你面前。 
  老板:我真是倒霉,遇到你这样的滑头。可你的确过分,一会要坐车,一会又要吃早饭。
      小梨子:当然,我来自很远很远的地方,我必须坐长途汽车回去,车费10元。 
  老板:你骗人! 
  小梨子:我从十八岁以后再也没有骗过人,相信我。你看我的脸,多么的真诚啊。
      是不是你一会还要说你口渴,想喝饮料呢? 
  小梨子:你太小瞧我了。相信我,我没有要求了。 
  老板:相信你?最后一次? 
  小梨子:是的,相信我。 
  老板:好吧,痛快些,70-元。 
  小梨子:我这就给你钱。
      老板:快些。 
  小梨子:等等,你瞧裤子上有好大一个窟窿。 
  老板:天啊,这是尿口,你该不会不知道这是尿口吧? 
  小梨子:哦,对不起,眼睛看花了。不过这里的颜色好象有点不对劲啊。 
  老板:不,不是,这是磨沙颜色,故意弄成这个样子的,这叫流行。
      小梨子:是吗,怎么看起来象旧裤子,怪怪的。 
  老板:什么?你侮辱我人没有关系,请你不要侮辱我的裤子。这是真东西。 
  小梨子:. 
  老板:好吧,我给你看我的进货单.你瞧,进货日期是上个礼拜,进货单位是广州某某 
  服装厂,这怎么能是旧裤子呢?
      小梨子:哦,对不起我误会了,不过.天啊,进货价:20元每件。 
  老板:哦,不对,不对。这是没有上税前的价钱,缴税后每条成本价是40元。 
  小梨子:你在撒谎,你以为我是傻瓜吗,这是增值税发票,是缴税后的价格。这条裤子只值20元,可你.
      老板:嘿嘿.做生意吗,你要知道我每天的门面房租金上百呢,不赚钱我吃什么? 
  小梨子:光天化日、朗朗乾坤,你心太黑! 
  老板:嘿嘿,30元行不?我的好兄弟,让我赚点。 
  小梨子:钱是小意思。只是你的行为让我气愤。你深深伤害了一个消费者的心灵。
      老板:有那么严重?  
     小梨子:难道你认为欺骗行为不严重吗?再发展下去,可就是诈骗,就是犯罪! 
     老板:妈呀,好夸张啊。这样,你消消火,我25元卖给你,就赚五元。
     小梨子:什么?25就是二百五的意思,你瞧不起我? 
  老板:没有没有,就24吧。 
  小梨子:有一个4,就是"死"的意思,不吉利,我很迷信的。 
  老板:天,23没有毛病吧。 
  小梨子:好吧,成交。 
  老板:...

手握800万雄师,蒋介石为什么会一败涂地?

8年抗战胜利后,国民党政府接收了日军上缴的武器装备,又有大量美援,老蒋掌握、控制的正规军、地方军、民团达800万之众!蒙哥马利元帅说"有一百万军队的统帅是不应该打败仗的",可手握800万雄师的蒋光头为什么三年的功夫,一败涂地? 

有说国民党亡于腐败;有说其失了民心而失天下;有说其部队无战斗力;有说其高级将领之间勾心斗角,相互倾轧;有说毛泽东用兵如神,蒋介石一窍不通,等等。上述说法皆有道理,但皆有片面性,见树木而不见森林,其败之的原因是综合性的,绝非传说毛是土龙,蒋是水龙,土克水的荒唐传说。简略地说,老蒋失误在于: 

1. 逆历史潮流而动 

抗战结束,人心思稳,大家都想过上安静日子。都不愿意打仗。但是这家伙非要打。 

国民皆盼望民主,愤恨独裁,渴望民主政治。但是他非要搞三个一(一个党,一个主义,一个领袖),成为"独夫民贼"。 

2. 得罪了所有的人。 

老蒋不善于团结人,却特会得罪人。农民恨他,因为他没给农民好处,反而苛捐杂税;农民是埋葬蒋氏王朝的主力军。蒋最大失误就是得罪了占人口绝大多数的农民。工人恨他,因为他从来没关心这一群体;资产阶级恨他,因为他只会搜刮他们;军人恨他,因为他们的家乡,父老乡亲被压迫、剥削和蹂躏。新兴的工业资本家正处在资本原始积累时期,疯狂地掠夺压榨工人,工人们的日子苦得很,牛马不如,以蒋介石为首的国民党政权,丝毫不替他们着想,他们保护一小部分既得利益集团,掠夺、欺压大多数居权力边缘以外的劳苦大众,甚至落井下石,视人民如草芥,此类触目惊心的事例比比皆是,连高层内部也恨他,因为他处事不公,只喜欢几个走狗。军头们恨他。因为他排挤旁系,宠爱嫡系。连儿子蒋敬国也怨他不能执法如山。他不会走群众路线,自以为是地搞所谓精英政治. 

3. 个人品质极差。 

言而无信,出尔反尔,心狠手辣,特务活动,脾气暴躁,蛮不讲理,人人对其畏而远之,已成过街耗子,落水狗。 

4. 心术不正。 

林彪的部队四平失利,损失惨重。孙立人将军率大军乘胜追击,赶到松花江边。但是蒋不愿意看到死敌白崇禧指挥的战役露脸,不顾李宗仁的坚决反对,下令停止追击。这样的例子很多。 

5. 军事素养很低。 

老蒋在日本陆军学校"深造"了几年,但只是个马夫而已。外行,但是却非要瞎指挥。比如凇沪抗战,把70万精锐大军投入进去,正好让武器装备精良的日本海陆空军有了用武之地。南京保卫战,更是既无必要,又无可能,但是他明知不可为而为之。不懂军事,还听不进良言。在共军强盛国军衰弱的前提下,非要搞淮海决战。明知共军围点打援,非要把精锐部队送进去。 

6. 重用庸才 

汤恩伯、陈诚、顾祝同.....,因为他们效忠老蒋,所以军权许之,而且把精兵交给他们指挥。而"小诸葛"白崇禧,刚铁将军孙立人,足智多谋的杜韦明等,一直得不到重用。 

7. 麾下草包多 

虽有军统中统等特务机关,但是却被对手打入各个领导层,分化瓦解。最高消息还没传达到前线部队将领,对手已经知道并做好部署。 

8.不会总结经验教训 

辽沈战役,几十万东北军化做乌有,但是却不吸取血的教训,反而又与解放军进行了淮海、平津2大战役,结果国军精锐全失。 

9.腐败 

毛主席淋漓尽致地抨击过他们: 

"八曰取缔贪官污吏,抗战以来,有发国难财至一万万元之多者,有讨小老婆至八九个之多者。举凡兵役也,公 也,经济之统制也,灾民难民之救济也,无不为贪官污吏借以发财之机会,国家有此一群虎狼,无怪乎国事不可收拾。人民怨情已达极点,而无人敢暴露其凶残。" 

面对有亡国亡党之危险的腐败,做为最高领袖的蒋不是彻底解决,而是一方面大肆中饱私囊,一方面当立牌坊的婊子,还搞什么无关痛痒的"新生活运动"。当小蒋在上海发起轰轰烈烈的打虎运动触及其连襟孔祥熙时,他坚决喊刹车。因为惹火了孔,他的老底就会被揭露出来。 

10.心狠手辣 

搞特务政治,实行恐怖统治,枪杀爱国人士,如李公朴闻一多等。 

1938年10月武汉陷落后,蒋介石决定毁灭长沙,实行"焦土抗战",于11月12日午夜,放炎焚烧长沙,熊熊大火烧了七天七夜,有52万人口,83万居民的长沙城化为灰烬,至少万余人葬身火海,1938年6月6日日军攻陷开封,蒋介石下令炸开黄河大堤,汹涌黄水居高临下,一泻千里,堤脚下四个村庄,瞬间被冲得踪影全无!据当时报纸报道"滔滔大水,由中牟、白沙间向南泛滥,水势所至,庐舍荡然,罹难民众,不知凡几。"另据"行政院善后统计署"统计:"计有河南、安徽、江苏三省44个县、市受灾,3911345人外逃,893303人死亡,经济损失达109176万元。另据报道,总计受灾人口超过6000 万。 

让人民群众付出如此巨大而惨重的代价,结果仅使日军暂时停止西攻郑州,将武汉的沦陷时间至多推迟了一两个月而已。 

对付各路诸侯,蒋确是个谋略大师。他执政时一直没歇着,扫平军阀后,大战各派系,汪精卫、胡汉民、李宗仁、白崇禧、陈济棠、蔡廷楷,冯玉祥、阎锡山、龙云、刘文辉,张学良、韩复渠等等,均是其手下败将。军阀们不代表最广大劳动人民的利益,所以不难战胜。而毛领导的中共则不同,蒋的缺陷几乎都是当时毛的长项。所以蒋败的很难看。连美国人也看不懂!即使给老蒋原子弹他也赢不了---投弹手会扔到他的头上!当蒋公坐上美龄号专机,最后看一眼这片熟悉的故土,心中在想什么? 

蒋介石败退台湾,总结了几条失败的原因,如失去了信仰,军队将领不听指挥,军队丧失了战斗意志,军队政治工作废驰,导致军队战斗力削弱,战略战术上的失败,对于美援的依赖心理等等。话虽有理,但却没抓住本质,只抓了些皮毛而已。假如蒋中正健在,能看到这篇文章该有多好。让这顽固的家伙真心醒悟当年到底败在什么地方。

eclipse下配置atf

需要工具组件:

1、Sun Java 1.5.0 JDK(或更高)
2、Tomcat 5 或以上
3、下载wtp-all-in-one-sdk-R-1.5.3-win32.zip(WTP)
http://download.actuatechina.com/eclipse/webtools/downloads/drops/R1.5/R-1.5.3-200702082048/wtp-all-in-one-sdk-R-1.5.3-win32.zip
4、下载ATF
http://download.actuatechina.com/eclipse/webtools/atf/atf-0.2.1-v200704051500.zip
安装ATF介绍

下载完ATF后

打开 Eclipse, 选择 Help -> Software Updates -> Find and Install...
选择Search for new features to install
选择 Next
选择 New Archived Site...
选择你刚下载完的ATF压缩文件
选择 Finish
确定所有的 ATF 复选框被选中
接下开始远程安装ATF
一旦ATF安装完后,Eclipse必须使用eclipse -clean 重启


关闭 Eclipse
进入CMD, 进入Eclipse目录 
执行"eclipse -clean"
这个操作只需在ATF做一次就可以了
5、搜索xulrunner,到  xulrunner 目录

卸载以前版本的xulrunner.

已为所有用户注册:
Win32: xulrunner --unregister-global
Linux: sudo ./xulrunner --unregister-global
仅已为当前用户注册:
xulrunner --unregister-user
使用新的 XULRunner 注册:

为所有用户注册:
Win32: xulrunner --register-global
Linux: sudo ./xulrunner --register-global
仅为当前用户注册:
xulrunner --register-user

6,下载Dojo 这里 http://dojotoolkit.org/downloads/

注意:必须按照以上方法安装!!!

为了获得ATF的全部功能,有三部份组件应该加入到ATF的包里.

在 Eclipse 的plugin下的org.eclipse.atf.personality.rico.runtime 文件夹下:

打开 resources/ 路径
加入 prototype.js
加入 rico.js
注意: prototype.js 和 rico.js 从这里 http://openrico.org/rico/downloads.page 获得

 

--------------------------------------------------------------------------------


在 Eclipse 的plugin下的 org.eclipse.atf.personality.dojo.runtime 文件夹下:
打开 resources/ 路径
解压dojo
拷贝 dojo-<version>-ajax/ 下的所有文件到org.eclipse.atf.personality.dojo.runtime 下的resources/路径下.
Note: Dojo 从这里 http://dojotoolkit.org/download/获得

 


--------------------------------------------------------------------------------


在 Eclipse 的plugin下的 org.eclipse.atf.javascript.jslint 文件夹下:
加入 jslint.js 到 resources/ 路径下
Note:jslint.js 从 这里 http://www.jslint.com/fulljslint.js 获得

开发dojo应用: 见 http://www.eclipse.org/atf/flash/index2.php
调试dojo应用: 见 http://www.eclipse.org/atf/flash/index4.php

老王的一生

  ◆幼时◆ 

  五岁时的老王很喜欢表妹,有一次,他非常殷勤地送牛奶给表妹喝,可是,表妹却不喝,还睁大眼睛瞪了他好一会儿说:真奇怪,我喝我妈妈的奶,所以我长得像我妈妈,可是,你总是喝牛的奶,怎么也长得像你妈妈呀? 

  ◆小学◆ 

  上三年级的老王对班上一个女生很有好感,可此女生从未注意过他。然而,突然有一天放学后,此女生偷偷地塞给他一盒巧克力和一袋大白兔奶糖,外加一张小纸条。小老王欣喜若狂,一路狂奔到家,他先拆开巧克力和大白兔,香甜地吃,以平息自己万分激动的心情,吃完,他小心翼翼地打开纸条,只见上面写着:请帮我把巧克力和大白兔奶糖退还给班长,谢谢!……小老王因此用积攒了半年的零花钱给班长赔了一盒巧克力和一袋大白兔奶糖。 

  ◆中学◆ 

  小老王上中学时,隔壁住了一对双胞胎女孩,有一次,双胞胎中的妹妹要求小老王用他家那些漂亮的子弹壳给她做一艘航空母舰模型。小老王欣然接受使命,整整花了三个月,用完所有的子弹壳,终于做成了一艘壮观的航空母舰,完工当天,小老王就急切地把这个献给邻家那个女孩,女孩果然爱不释手,只见她一边摸着模型一边感叹:这是我见过的最漂亮的航空母舰了,我决定收下,麻烦你给我妹妹再重新做一个吧。 

  ◆大学◆ 

  上大学了,小老王会写情书了,他给同年级的一个女生写了一封洋洋洒洒激情火辣长达万字的情书,其大意可归为一句:如果你是嫦娥,我愿作猪八戒。不一日,女生回信道:我早就看出你的不良居心,你是在告诉我一句歇后语:如果你是嫦娥,我愿作猪八戒――调戏你没商量。 

  ◆青年◆ 

  小老王参加工作,到了谈婚论嫁的年龄,可惜他的头却越来越秃,有一次约会,他戴上假发,买了玫瑰,在桥头等候,眼看姑娘快步走上桥,突然一阵狂风刮起,把小老王的假头套掀到桥底,小老王又羞又气,一着急对着姑娘叫:姑,姑,姑,姑……"娘"字还没蹦出来,女孩却一甩身说:哼,我还没嫌你老,你倒是先嫌我老了,我才没有你这么个光头侄子呢。 

  ◆中年◆ 

  已经结婚,人到中年的老王,与妻子互敬互让,也还算幸福,可老王总觉着缺点什么。一个中秋节的夜晚,妻子坐在阳台上赏月,老王抓住这一浪漫时机,他轻轻抚摸着妻子的双肩说:亲爱的,这轮明月让你想起了什么?妻子转过身惊讶地说:老王,你不是刚刚才吃过月饼吗? 

  ◆老年◆ 

  已经退休,日薄西山的老王,没事就在街上溜达,有一次他在街头遇到初恋情人,虽说现已是昨日黄花,但老王还是按耐不住激动,跑上去寒暄叙旧,可初恋情人却半晌没认出老王,后经老王多次提醒,到底是回过神了,大声说:啊,我想起来了,你就是那个老王八(吧)。此语一出,惊得周围人群纷纷向老王投来异样目光,老王顿时败兴,悻悻回道:我是老王,但没有八。
  ◆幼时◆ 

  五岁时的老王很喜欢表妹,有一次,他非常殷勤地送牛奶给表妹喝,可是,表妹却不喝,还睁大眼睛瞪了他好一会儿说:真奇怪,我喝我妈妈的奶,所以我长得像我妈妈,可是,你总是喝牛的奶,怎么也长得像你妈妈呀? 

  ◆小学◆ 

  上三年级的老王对班上一个女生很有好感,可此女生从未注意过他。然而,突然有一天放学后,此女生偷偷地塞给他一盒巧克力和一袋大白兔奶糖,外加一张小纸条。小老王欣喜若狂,一路狂奔到家,他先拆开巧克力和大白兔,香甜地吃,以平息自己万分激动的心情,吃完,他小心翼翼地打开纸条,只见上面写着:请帮我把巧克力和大白兔奶糖退还给班长,谢谢!……小老王因此用积攒了半年的零花钱给班长赔了一盒巧克力和一袋大白兔奶糖。 

  ◆中学◆ 

  小老王上中学时,隔壁住了一对双胞胎女孩,有一次,双胞胎中的妹妹要求小老王用他家那些漂亮的子弹壳给她做一艘航空母舰模型。小老王欣然接受使命,整整花了三个月,用完所有的子弹壳,终于做成了一艘壮观的航空母舰,完工当天,小老王就急切地把这个献给邻家那个女孩,女孩果然爱不释手,只见她一边摸着模型一边感叹:这是我见过的最漂亮的航空母舰了,我决定收下,麻烦你给我妹妹再重新做一个吧。 

  ◆大学◆ 

  上大学了,小老王会写情书了,他给同年级的一个女生写了一封洋洋洒洒激情火辣长达万字的情书,其大意可归为一句:如果你是嫦娥,我愿作猪八戒。不一日,女生回信道:我早就看出你的不良居心,你是在告诉我一句歇后语:如果你是嫦娥,我愿作猪八戒――调戏你没商量。 

  ◆青年◆ 

  小老王参加工作,到了谈婚论嫁的年龄,可惜他的头却越来越秃,有一次约会,他戴上假发,买了玫瑰,在桥头等候,眼看姑娘快步走上桥,突然一阵狂风刮起,把小老王的假头套掀到桥底,小老王又羞又气,一着急对着姑娘叫:姑,姑,姑,姑……"娘"字还没蹦出来,女孩却一甩身说:哼,我还没嫌你老,你倒是先嫌我老了,我才没有你这么个光头侄子呢。 

  ◆中年◆ 

  已经结婚,人到中年的老王,与妻子互敬互让,也还算幸福,可老王总觉着缺点什么。一个中秋节的夜晚,妻子坐在阳台上赏月,老王抓住这一浪漫时机,他轻轻抚摸着妻子的双肩说:亲爱的,这轮明月让你想起了什么?妻子转过身惊讶地说:老王,你不是刚刚才吃过月饼吗? 

  ◆老年◆ 

  已经退休,日薄西山的老王,没事就在街上溜达,有一次他在街头遇到初恋情人,虽说现已是昨日黄花,但老王还是按耐不住激动,跑上去寒暄叙旧,可初恋情人却半晌没认出老王,后经老王多次提醒,到底是回过神了,大声说:啊,我想起来了,你就是那个老王八(吧)。此语一出,惊得周围人群纷纷向老王投来异样目光,老王顿时败兴,悻悻回道:我是老王,但没有八。

2007年5月8日星期二

ruby计算2的2的...次方

闲来无事,写了一小段ruby程序,如下,用来计算2的2的...次方的值,计算结果却让我大跌眼镜,将结果发过来让大家看看
num=2
while 1 do
  print "\n#{num.class}  #{num}\n"
  num*=num
end
 
结果
Fixnum  2
 
Fixnum  4
 
Fixnum  16
 
Fixnum  256
 
Fixnum  65536
 
Bignum  4294967296
 
Bignum  18446744073709551616
 
Bignum  340282366920938463463374607431768211456
 
Bignum  115792089237316195423570985008687907853269984665640564039457584007913129639936
 
Bignum  13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096
 
Bignum  179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216
 
Bignum  32317006071311007300714876688669951960444102669715484032130345427524655138867890893197201411522913463688717960921898019494119559150490921095088152386448283120630877367300996091750197750389652106796057638384067568276792218642619756161838094338476170470581645852036305042887575891541065808607552399123930385521914333389668342420684974786564569494856176035326322058077805659331026192708460314150258592864177116725943603718461857357598351152301645904403697613233287231227125684710820209725157101726931323469678542580656697935045997268352998638215525166389437335543602135433229604645318478604952148193555853611059596230656
 
Bignum  1044388881413152506691752710716624382579964249047383780384233483283953907971557456848826811934997558340890106714439262837987573438185793607263236087851365277945956976543709998340361590134383718314428070011855946226376318839397712745672334684344586617496807908705803704071284048740118609114467977783598029006686938976881787785946905630190260940599579453432823469303026696443059025015972399867714215541693835559885291486318237914434496734087811872639496475100189041349008417061675093668333850551032972088269550769983616369411933015213796825837188091833656751221318492846368125550225998300412344784862595674492194617023806505913245610825731835380087608622102834270197698202313169017678006675195485079921636419370285375124784014907159135459982790513399611551794271106831134090584272884279791554849782954323534517065223269061394905987693002122963395687782878948440616007412945674919823050571642377154816321380631045902916136926708342856440730447899971901781465763473223850267253059899795996090799469201774624817718449867455659250178329070473119433165550807568221846571746373296884912819520317457002440926616910874148385078411929804522981857338977648103126085903001302413467189726673216491511131602920781738033436090243804708340403154190336
 
Bignum  1090748135619415929462984244733782862448264161996232692431832786189721331849119295216264234525201987223957291796157025273109870820177184063610979765077554799078906298842192989538609825228048205159696851613591638196771886542609324560121290553901886301017900252535799917200010079600026535836800905297805880952350501630195475653911005312364560014847426035293551245843928918752768696279344088055617515694349945406677825140814900616105920256438504578013326493565836047242407382442812245131517757519164899226365743722432277368075027627883045206501792761700945699168497257879683851737049996900961120515655050115561271491492515342105748966629547032786321505730828430221664970324396138635251626409516168005427623435996308921691446181187406395310665404885739434832877428167407495370993511868756359970390117021823616749458620969857006263612082706715408157066575137281027022310927564910276759160520878304632411049364568754920967322982459184763427383790272448438018526977764941072715611580434690827459339991961414242741410599117426060556483763756314527611362658628383368621157993638020878537675545336789915694234433955666315070087213535470255670312004130725495834508357439653828936077080978550578912967907352780054935621561090795845172954115972927479877527738560008204118558930004777748727761853813510493840581861598652211605960308356405941821189714037868726219481498727603653616298856174822413033485438785324024751419417183012281078209729303537372804574372095228703622776363945290869806258422355148507571039619387449629866808188769662815778153079393179093143648340761738581819563002994422790754955061288818308430079648693232179158765918035565216157115402992120276155607873107937477466841528362987708699450152031231862594203085693838944657061346236704234026821102958954951197087076546186622796294536451620756509351018906023773821539532776208676978589731966330308893304665169436185078350641568336944530051437491311298834367265238595404904273455928723949525227184617404367854754610474377019768025576605881038077270707717942221977090385438585844095492116099852538903974655703943973086090930596963360767529964938414598185705963754561497355827813623833288906309004288017321424808663962671333528009232758350873059614118723781422101460198615747386855096896089189180441339558524822867541113212638793675567650340362970031930023397828465318547238244232028015189689660418822976000815437610652254270163595650875433851147123214227266605403581781469090806576468950587661997186505665475715792896
 
Bignum  1189731495357231765085759326628007130763444687096510237472674821233261358180483686904488595472612039915115437484839309258897667381308687426274524698341565006080871634366004897522143251619531446845952345709482135847036647464830984784714280967845614138476044338404886122905286855313236158695999885790106357018120815363320780964323712757164290613406875202417365323950267880089067517372270610835647545755780793431622213451903817859630690311343850657539360649645193283178291767658965405285113556134369793281725888015908414675289832538063419234888599898980623114025121674472051872439321323198402942705341366951274739014593816898288994445173400364617928377138074411345791848573595077170437644191743889644885377684738322240608239079061399475675334739784016491742621485229014847672335977897158397334226349734811441653077758250988926030894789604676153104257260141806823027588003441951455327701598071281589597169413965608439504983171255062282026626200048042149808200002060993433681237623857880627479727072877482838438705048034164633337013385405998040701908662387301605018188262573723766279240798931717708807901740265407930976419648877869604017517691938687988088008944251258826969688364194133945780157844364946052713655454906327187428531895100278695119323496808703630436193927592692344820812834297364478686862064169042458555136532055050508189891866846863799917647547291371573500701015197559097453040033031520683518216494195636696077748110598284901343611469214274121810495077979275556645164983850062051066517084647369464036640569339464837172183352956873912042640003611618789278195710052094562761306703551840330110645101995435167626688669627763820604342480357906415354212732946756073006907088870496125050068156659252761297664065498347492661798824062312210409274584565587264846417650160123175874034726261957289081466197651553830744424709698634753627770356227126145052549125229448040149114795681359875968512808575244271871455454084894986155020794806980939215658055319165641681105966454159951476908583129721503298816585142073061480888021769818338417129396878371459575846052583142928447249703698548125295775920936450022651427249949580708203966082847550921891152133321048011973883636577825533325988852156325439335021315312134081390451021255363707903495916963125924201167877190108935255914539488216897117943269373608639074472792751116715127106396425081353553137213552890539802602978645319795100976432939091924660228878912900654210118287298298707382159717184569540515403029173307292454391789568674219640761451173600617752186991913366837033887201582071625868247133104513315097274713442728340606642890406496636104443217752811227470029162858093727701049646499540220983981932786613204254226464243689610107429923197638681545837561773535568984536053627234424277105760924864023781629665526314910906960488073475217005121136311870439925762508666032566213750416695719919674223210606724721373471234021613540712188239909701971943944347480314217903886317767779921539892177334344368907550318800833546852344370327089284147501640589448482001254237386680074457341910933774891959681016516069106149905572425810895586938833067490204900368624166301968553005687040285095450484840073528643826570403767157286512380255109954518857013476588189300004138849715883139866071547574816476727635116435462804401112711392529180570794193422686818353212799068972247697191474268157912195973794192807298886952361100880264258801320928040011928153970801130741339550003299015924978259936974358726286143980520112454369271114083747919007803406596321353417004068869443405472140675963640997405009225803505672726465095506267339268892424364561897661906898424186770491035344080399248327097911712881140170384182058601614758284200750183500329358499691864066590539660709069537381601887679046657759654588001937117771344698326428792622894338016112445533539447087462049763409147542099248815521395929388007711172017894897793706604273480985161028815458787911160979113422433557549170905442026397275695283207305331845419990749347810524006194197200591652147867193696254337864981603833146354201700628817947177518115217674352016511172347727727075220056177748218928597158346744541337107358427757919660562583883823262178961691787226118865632764934288772405859754877759869235530653929937901193611669007472354746360764601872442031379944139824366828698790212922996174192728625891720057612509349100482545964152046477925114446500732164109099345259799455690095576788686397487061948854749024863607921857834205793797188834779656273479112388585706424836379072355410286787018527401653934219888361061949671961055068686961468019035629749424086587195041004404915266476272761070511568387063401264136517237211409916458796347624949215904533937210937520465798300175408017538862312719042361037129338896586028150046596078872444365564480545689033575955702988396719744528212984142578483954005084264327730840985420021409069485412320805268520094146798876110414583170390473982488899228091818213934288295679717369943152460447027290669964066816
 
Bignum  1415461031044954789001553027744951601348130711472388167234385748272366634240845253596025356476648415075475872961656126492389808579544737848881938296250873191743927793544913011050162651277957029846960211783242933521207545413484969856851851141288515163201482995389055097460622098635675003353929224278582935664416262572773308153277514346480313371988612629481483562438178928958867777850072198316174841251955590996672018645093640850803679630220367201383844866791449284737518262813123083439037243678440420897139923778278952770312318778329004894547065489077596835396017153603170050371302014762443872701111379554484309718662306883776010475348441493600491943479041271992920195331983064930106164727241438940877685164658948654886171641124473975626241632750150126655369981021293570066042305482486040883165635862835728637046058352403756085745691239473897891999085976345203704659967157427239535836507133656908815246080139195569461072006301590372954830738644391138016065344131131207604264053897440828904662047183234377547427287691941741535946510882990904477863185473798528388060457568927943633923928872681927502029572963130840854853739937076881035646179383055483433876051402037614424748902969018159186519811051545367967103767182819709135479019131683309330797374408197339831527239040715908112213095126770717606001288898889370710896248862361503869205214536908258196921765593065325392836332142594411134603475509366028145690306350601859295261296263331018682276317567749534571058772235567679556920240789109070521253987131031263902293034744367356932509952188828475362311316445284228640489421809263738423630931243024914587863928134719186104164660605356001591962778646378295413659770782646979236289062616442418071571039282551289348848274522893059561717860194034698241804887531275078109603637160495907579995366419636417028927573391670580796818526074226095014375189438579216071677540766085605604106123036669667434677723472675564458991671268414100801031453917736665947284956674884035306621286465183798693852599803324619865181856244422079233687294508536408521087418873908498202710597080474480249818858011490930518512713798803629101638716278578874145214429026186276602289012484526830076647356828764878327726719816428678904207944456894393185983090347045176886732326253912297649524439880403701430566761380359925558522718201954287517587367247510777678934664472548647787048306330770862370015525858005479756471499227244901142805749769564184753211967223226212964165678856604892416984915097422960534122333453876981279243565766391796311605149222628328255333061543877525846029404507128890053189442527544665141513571136187126874914601669750392486100507568442046831780631032540574077944274454228087639241736818505163759910365131990632947462993204585218122431992323864244947394390438656356424037471932484452186545692102503479070599953823165194211019696760575264426802848303031804305733532228050180286034175168918827460626042268658295140706915047189049492578996650494005882337071150004868956193406593184838633694068409823903437144417376039174235011053228846851424217955172902918651003610984108402650929359396305634313047088725113039076811940090109855578285937829164213576612822210347957745947331047482525346602542653176899809278808232796557531832150249769253600667902268029661700149632868541956266119528042486534014778779846981761033155007262730162675954520221887384710387051721829271917592295057169589539706361671082094809405871790468623234895914796464390019259167513771864832869036015645542195008456098615038348028400803005801944957156282746379539470250603755465358786281476086044567893715130635914946085361612372742732638037372287633897118303250036355897758209569010246051563429109255864938245524550200580218274314809738075022775651220374105227215906205292751918667060475328593225367793061070422108733800983855507591806413460964585595316359971179284283604731468668545484761381747591639736453419896449323486397030776397761202590467637505473390222249456724093238682557762781839530938233751281999608711356147835655195236666056355678841889862284014674059052995170220711404445012766642203314592371712594877968343265210232798135023299117318191770365123807086704381809759602260151612996896994294186084475619138121455294389585874237791634701296124550179672059485838256445846530599137662480841344376503989244633345016070887198120421435575726237189312161818021548006389501182393441712142044953072264016676799011624620312246468554654371544717355227740157629086739710675845209992133342035144038961065892653392182875622932670067798433934891709519877850794219491447988160171932331006495620280094149464379450153085406225081471879585894087916092141623752345112751067703166403681162331920291740847388957632311053342426152947324011627922225878539935022974616062774839110489080094174972841068102006645677499293769091362853719300958775222088670909723895414866464400756314470281962034276531512544009726174649399937581739718117982417360985958259468485436586733686659771030677664677905401522360041892481951454135360540917411098412286723830672712910603386748136348878056545746112142111116659985782398275627122449414307140749404884060753863706024281031485538666133332835597817514616331728118982180628823657668668099621799842011158020767772792912298768785614574416019320546196793486018677884550715870608004988829978148966980770136884353226949853654541655837029498017031085943660440466076019479435181045436897845351048788440102268677798257134774081674357195358847761226603653040273985441982221318087815835107317571211841215825606453348521097936413520295998260751040778703740366309871999114717441069182825782996299411623087415008910941303284182131584799816210728034255555687956785287887098941927737599159824398527573423117728252839768919145018117995597946282264946523741691180858441194373387098969530126834014923656627849129062189145572870212225909464530919531634090206371146321663797279805760028495288084848179380053931435604182517516600823936737919915974103591167638898871754018470172589234989397051893028574365288890303780239194622538215532212735555299397542845350629361560347195459286729561168235383428930828378887678197590624110372267338756668414899526138480866747114831414687579691636020586013635675559033488649721062244142787960404056961306176022981242840984825421797150393909713884990708008654327558025619074213270714252431515171638994505720144347502185848528129000055629703422695425047209518177577128511315492059613722366724615343968357332924191178041956753132941596322101250417068813977303498033940613791099720174786773844696734034010269139553878212387108508158622839733593634918975616613368243882808391509244806809337882965338701545504691589517650472239580754189547649790038026506707709763098148746524031013800531890876858227360501676161874661946431647929572555992967298553471152693471452480119897608173336753260124452510815333416409357029633265172614203663326409976153102467083379129588112837280711111346490898947808402062401228963194162711657422998429263579276515414000979053740662733816632981508535128518440258006782392288860903823207436820793041881907093791874917635829854808150640894907127600430185202301457398493533111918994100853753771956293430162566011361163168953462188010231819000213669780447856871248564377584509085888797883747538309181810700615032225563091016689474780253412571338625581817921061549352557588323659562675650563535186144754433556539747098322643609542486120512917463706713059064230762924353617972053492527119192658171851345957700772571841998176036269399889012480745075924980479390349332734102774400008120073461540540571051506971003904623484344762005126345905465893817895377928139596549936720100490013375956605889200767596688065961076003472005585890222594655010430123127351665316862663484785966446263740624564875351640780923703006868107440790271682936043304873579648989978571754898840789184480129570446991029504758616393106487523321312507454036808667210073602144290050619610614738139543285649346986393213102456863793665512533655931941790537619020604730601443181250662019687491711547360597117856977240817110039737153355212454745907787131179578656470567535050192702347739653312290522505871612897990429961857550031033665725647987982751868407294730437319505335782425290324427994308374960806684435416445907817107168298342945182985594111281499472495749501642418042734681158560450241309279063816746067016274795461832774699007774423895748677615395848493765672271957278664546343161609126810028254214659633625223934508931691728584028342356669332635458079957147833789501696835781748234884919093574276330354577841975249603899105407104895787598263630679206627796433754045597409176502438867600537016879169914474754840024311922169647388379952802523847080102439285112565751677726373201688403254466789070713575214256192452449029110040537994627424532403620179880056518721219108771374073638118719073211367295514376708596537294204544099903590754371656178656960170217675832153268164591674004500239073743502648099105624548587493544825479270589742494495181223722329693345468639306990523118995640567042531369577131113159027381808071346991604513906450398219426300899204662435492578485666553974492723173859777485412927016068341515517437115137050372750279278548332799193799400154166442801427310076537020119936073495221974791939759846168942055397357348278178050441024490005893818256958665388971201322931680573846084525016332224646866617490832496084991690171583029352609836490908113464668343829985351590552945284372573978295485097950893072423518605982085487154470155025269025854044646496572448495225343096261896378931482883286657508859228868487844184479087538453974144187004884366561256723404772190847586008543961349071131191708943295337664384184532774661503245910257451923515607711559705478132556040197663414911885143697985464807309297002910250505302287769412337441199360424519160716552890882816796378296881641827981453035207233752063518782778493743827708109913493162932182427627261046280168269958077541122668104633712377856
 
Bignum  2003529930406846464979072351560255750447825475569751419265016973710894059556311453089506130880933348101038234342907263181822949382118812668869506364761547029165041871916351587966347219442930927982084309104855990570159318959639524863372367203002916969592156108764948889254090805911457037675208500206671563702366126359747144807111774815880914135742720967190151836282560618091458852699826141425030123391108273603843767876449043205960379124490905707560314035076162562476031863793126484703743782954975613770981604614413308692118102485959152380195331030292162800160568670105651646750568038741529463842244845292537361442533614373729088303794601274724958414864915930647252015155693922628180691650796381064132275307267143998158508811292628901134237782705567421080070065283963322155077831214288551675554073345107213112427399562982719769150054883905223804357045848197956393157853510018992000024141963706813559840464039472194016069517690156119726982337890017641517190051133466306898140219383481435426387306539552969691388024158161859561100640362119796101859534802787167200122604642492385111393400464351623867567078745259464670903886547743483217897012764455529409092021959585751622973333576159552394885297579954028471943529913543763705986928913757153740001986394332464890052543106629669165243419174691389632476560289415199775477703138064781342309596190960654591300890188887588084733625956065444888501447335706058817090162108499714529568344061979690565469813631162053579369791403236328496233046421066136200220175787851857409162050489711781820400187282939943446186224328009837323764931814789848119452713007440220765680910376203999203492023906626264491909167985461515778839060397720759279378852241294301017458086862263369284725851403039615558564330385450688652213114813638408384778263790459607186876728509763471271988890680478243230394718650525660978150729861141430305816927924971409161059417185352275887504477592218301158780701975535722241400019548102005661773589781499532325208589753463547007786690406429016763808161740550405117670093673202804549339027992491867306539931640720492238474815280619166900933805732120816350707634351669869625020969023162859350071874190579161241536897514808261904847946571736601005892476655445840838334790544144817684255327207315586349347605137419779525190365032198020108764738368682531025183377533908861426184800374008082238104076468878471647552945326947661700424461063311238021134588694532200116564076327023074292426051582811070387018345324567635625951430032037432740780879056283663406965030844225855967039271869461158513793386475699748568670079823960604393478850861649260304945061743412365828352144806726676841807083754862211408236579802961200027441324438432402331257403545019352428776430880232850855886089962774458164680857875115807014743763867976955049991643998284357290415378143438847303484261903388841494031366139854257635577105335580206622185577060082551288893332226436281984838613239570676191409638533832374343758830859233722284644287996245605476932428998432652677378373173288063210753211238680604674708428051166488709084770291208161104912555598322366244868556651402684641209694982590565519216188104341226838996283071654868525536914850299539675503954938371853405900096187489473992880432496373165753803673586710175783994818471798498246948060532081996066183434012476096639519778021441199752546704080608499344178256285092726523709898651539462193004607364507926212975917698293892367015170992091531567814439791248475706237804600009918293321306880570046591458387208088016887445835557926258465124763087148566313528934166117490617526671492672176128330845273936469244582892571388877839056300482483799839692029222215486145902373478222682521639957440801727144146179559226175083889020074169926238300282286249284182671243405751424188569994272331606998712986882771820617214453142574944015066139463169197629181506579745526236191224848063890033669074365989226349564114665503062965960199720636202603521917776740668777463549375318899587866282125469797102065747232721372918144666659421872003474508942830911535189271114287108376159222380276605327823351661555149369375778466670145717971901227117812780450240026384758788339396817962950690798817121690686929538248529830023476068454114178139110648560236549754227497231007615131870024053910510913817843721791422528587432098524957878034683703337818421444017138688124249984418618129271198533315382567321870421530631197748535214670955334626336610864667332292409879849256691109516143618601548909740241913509623043612196128165950518666022030715613684732364660868905014263913906515063908199378852318365059897299125404479443425166774299659811849233151555272883274028352688442408752811283289980625912673699546247341543333500147231430612750390307397135252069338173843322950701049061867539433130784798015655130384758155685236218010419650255596181934986315913233036096461905990236112681196023441843363334594927631946101716652913823717182394299216272538461776065694542297877071383198817036964588689811863210976900355735884624464835706291453052757101278872027965364479724025405448132748391794128826423835171949197209797145936887537198729130831738033911016128547415377377715951728084111627597186384924222802373441925469991983672192131287035585307966942713416391033882754318613643490100943197409047331014476299861725424423355612237435715825933382804986243892498222780715951762757847109475119033482241412025182688713728193104253478196128440176479531505057110722974314569915223451643121848657575786528197564843508958384722923534559464521215831657751471298708225909292655638836651120681943836904116252668710044560243704200663709001941185557160472044643696932850060046928140507119069261393993902735534545567470314903886022024639948260501762431969305640666366626090207048887438898907498152865444381862917382901051820869936382661868303915273264581286782806601337500096593364625146091723180312930347877421234679118454791311109897794648216922505629399956793483801699157439700537542134485874586856047286751065423341893839099110586465595113646061055156838541217459801807133163612573079611168343863767667307354583494789788316330129240800836356825939157113130978030516441716682518346573675934198084958947940983292500086389778563494693212473426103062713745077286156922596628573857905533240641849018451328284632709269753830867308409142247659474439973348130810986399417379789657010687026734161967196591599588537834822988270125605842365589539690306474965584147981310997157542043256395776070485100881578291408250777738559790129129407309462785944505859412273194812753225152324801503466519048228961406646890305102510916237770448486230229488966711380555607956620732449373374027836767300203011615227008921843515652121379215748206859356920790214502277133099987729459596952817044582181956080965811702798062669891205061560742325686842271306295009864421853470810407128917646906550836129916694778023822502789667843489199409657361704586786242554006942516693979292624714524945408858422726153755260071904336329196375777502176005195800693847635789586878489536872122898557806826518192703632099480155874455575175312736471421295536494084385586615208012115079075068553344489258693283859653013272046970694571546959353658571788894862333292465202735853188533370948455403336565356988172582528918056635488363743793348411845580168331827676834646291995605513470039147876808640322629616641560667508153710646723108461964247537490553744805318226002710216400980584497526023035640038083472053149941172965736785066421400842696497103241919182121213206939769143923368374709228267738708132236680086924703491586840991153098315412063566123187504305467536983230827966457417620806593177265685841681837966106144963432544111706941700222657817358351259821080769101961052229263879745049019254311900620561906577452416191913187533984049343976823310298465893318373015809592522829206820862230332585280119266496314441316442773003237792274712330696417149945532261035475145631290668854345426869788447742981777493710117614651624183616680254815296335308490849943006763654806102940094693750609845588558043970485914449584445079978497045583550685408745163316464118083123079704389849190506587586425810738422420591191941674182490452700288263983057950057341711487031187142834184499153456702915280104485145176055306971441761368582384102787659324662689978418319620312262421177391477208004883578333569204533935953254564897028558589735505751235129536540502842081022785248776603574246366673148680279486052445782673626230852978265057114624846595914210278122788941448163994973881884622768244851622051817076722169863265701654316919742651230041757329904473537672536845792754365412826553581858046840069367718605020070547247548400805530424951854495267247261347318174742180078574693465447136036975884118029408039616746946288540679172138601225419503819704538417268006398820656328792839582708510919958839448297775647152026132871089526163417707151642899487953564854553553148754978134009964854498635824847690590033116961303766127923464323129706628411307427046202032013368350385425360313636763575212604707425311209233402837482949453104727418969287275572027615272268283376741393425652653283068469997597097750005560889932685025049212884068274139881631540456490350775871680074055685724021758685439053228133770707415830756269628316955687424060527726485853050611356384851965918968649596335568216975437621430778665934730450164822432964891270709898076676625671517269062058815549666382573829274182082278960684488222983394816670984039024283514306813767253460126007269262969468672750794346190439996618979611928750519442356402644303271737341591281496056168353988188569484045342311424613559925272330064881627466723523751234311893442118885085079358163848994487544756331689213869675574302737953785262542329024881047181939037220666894702204258836895840939998453560948869946833852579675161882159410981624918741813364726965123980677561947912557957446471427868624053750576104204267149366084980238274680575982591331006919941904651906531171908926077949119217946407355129633864523035673345588033313197080365457184791550432654899559705862888286866606618021882248602144999973122164138170653480175510438406624412822803616648904257377640956326482825258407669045608439490325290526337532316509087681336614242398309530806549661879381949120033919489494065132398816642080088395554942237096734840072642705701165089075196155370186264797456381187856175457113400473810762763014953309735174180655479112660938034311378532532883533352024934365979129341284854970946826329075830193072665337782559314331110963848053940859283988907796210479847919686876539987477095912788727475874439806779824968278272200926449944559380414608770641941810440758269805688038949654616587983904660587645341810289907194293021774519976104495043196841503455514044820928933378657363052830619990077748726922998608279053171691876578860908941817057993404890218441559791092676862796597583952483926734883634745651687016166240642424241228961118010615682342539392180052483454723779219911228595914191877491793823340010078128326506710281781396029120914720100947878752551263372884222353869490067927664511634758101193875319657242121476038284774774571704578610417385747911301908583877890152334343013005282797038580359815182929600305682612091950943737325454171056383887047528950563961029843641360935641632589408137981511693338619797339821670761004607980096016024823096943043806956620123213650140549586250615282588033022908385812478469315720323233601899469437647726721879376826431828382603564520699468630216048874528424363593558622333506235945002890558581611275341783750455936126130852640828051213873177490200249552738734585956405160830583053770732533971552620444705429573538361113677523169972740292941674204423248113875075631319078272188864053374694213842169928862940479635305150560788126366206497231257579019598873041195626227343728900516561111094111745277965482790471250581999077498063821559376885546498822938985408291325129076478386322494781016753491693489288104203015610283386143827378160946341335383578340765314321417150655877547820252454780657301342277470616744241968952613164274104695474621483756288299771804186785084546965619150908695874251184435837306590951460980451247409411373899927822492983367796011015387096129749705566301637307202750734759922943792393824427421186158236161317886392553095117188421298508307238259729144142251579403883011359083331651858234967221259621812507058113759495525022747274674369887131926670769299199084467161228738858457584622726573330753735572823951616964175198675012681745429323738294143824814377139861906716657572945807804820559511881687188075212971832636442155336787751274766940790117057509819575084563565217389544179875074523854455200133572033332379895074393905312918212255259833790909463630202185353848854825062897715616963860712382771725621313460549401770413581731931763370136332252819127547191443450920711848838366818174263342949611870091503049165339464763717766439120798347494627397822171502090670190302469762151278521956142070806461631373236517853976292092025500288962012970141379640038055734949269073535145961208674796547733692958773628635660143767964038430796864138563447801328261284589184898528048048844180821639423974014362903481665458114454366460032490618763039502356402044530748210241366895196644221339200757479128683805175150634662569391937740283512075666260829890491877287833852178522792045771846965855278790447562192663992008409302075673925363735628390829817577902153202106409617373283598494066652141198183810884515459772895164572131897797907491941013148368544639616904607030107596818933741217575988165127000761262789169510406315857637534787420070222051070891257612361658026806815858499852631465878086616800733264676830206391697203064894405628195406190685242003053463156621891327309069687353181641094514288036605995220248248886711554429104721929134248346438705368508648749099178812670565665387191049721820042371492740164460943459845392536706132210616533085662021188968234005752675486101476993688738209584552211571923479686888160853631615862880150395949418529489227074410828207169303387818084936204018255222271010985653444817207470756019245915599431072949578197878590578940052540122867517142511184356437184053563024181225473266093302710397968091064939272722683035410467632591355279683837705019855234621222858410557119921731717969804339317707750755627056047831779844447637560254637033369247114220815519973691371975163241302748712199863404548248524570118553342675264715978310731245663429805221455494156252724028915333354349341217862037007260315279870771872491234494477147909520734761385425485311552773301030342476835865496093722324007154518129732692081058424090557725645803681462234493189708138897143299831347617799679712453782310703739151473878692119187566700319321281896803322696594459286210607438827416919465162267632540665070881071030394178860564893769816734159025925194611823642945652669372203155504700213598846292758012527715422016629954863130324912311029627923723899766416803497141226527931907636326136814145516376656559839788489381733082668779901962886932296597379951931621187215455287394170243669885593888793316744533363119541518404088283815193421234122820030950313341050704760159987985472529190665222479319715440331794836837373220821885773341623856441380700541913530245943913502554531886454796252260251762928374330465102361057583514550739443339610216229675461415781127197001738611494279501411253280621254775810512972088465263158094806633687670147310733540717710876615935856814098212967730759197382973441445256688770855324570888958320993823432102718224114763732791357568615421252849657903335093152776925505845644010552192644505312073756287744998163646332835816140330175813967359427327690448920361880386754955751806890058532927201493923500525845146706982628548257883267398735220457228239290207144822219885587102896991935873074277815159757620764023951243860202032596596250212578349957710085626386118233813318509014686577064010676278617583772772895892746039403930337271873850536912957126715066896688493880885142943609962012966759079225082275313812849851526902931700263136328942095797577959327635531162066753488651317323872438748063513314512644889967589828812925480076425186586490241111127301357197181381602583178506932244007998656635371544088454866393181708395735780799059730839094881804060935959190907473960904410150516321749681412100765719177483767355751000733616922386537429079457803200042337452807566153042929014495780629634138383551783599764708851349004856973697965238695845994595592090709058956891451141412684505462117945026611750166928260250950770778211950432617383223562437601776799362796099368975191394965033358507155418436456852616674243688920371037495328425927131610537834980740739158633817967658425258036737206469351248652238481341663808061505704829059890696451936440018597120425723007316410009916987524260377362177763430621616744884930810929901009517974541564251204822086714586849255132444266777127863728211331536224301091824391243380214046242223349153559516890816288487989988273630445372432174280215755777967021666317047969728172483392841015642274507271779269399929740308072770395013581545142494049026536105825409373114653104943382484379718606937214444600826798002471229489405761853892203425608302697052876621377373594394224114707074072902725461307358541745691419446487624357682397065703184168467540733466346293673983620004041400714054277632480132742202685393698869787607009590048684650626771363070979821006557285101306601010780633743344773073478653881742681230743766066643312775356466578603715192922768440458273283243808212841218776132042460464900801054731426749260826922155637405486241717031027919996942645620955619816454547662045022411449404749349832206807191352767986747813458203859570413466177937228534940031631599544093684089572533438702986717829770373332806801764639502090023941931499115009105276821119510999063166150311585582835582607179410052528583611369961303442790173811787412061288182062023263849861515656451230047792967563618345768105043341769543067538041113928553792529241347339481050532025708728186307291158911335942014761872664291564036371927602306283840650425441742335464549987055318726887926424102147363698625463747159744354943443899730051742525110877357886390946812096673428152585919924857640488055071329814299359911463239919113959926752576359007446572810191805841807342227734721397723218231771716916400108826112549093361186780575722391018186168549108500885272274374212086524852372456248697662245384819298671129452945515497030585919307198497105414181636968976131126744027009648667545934567059936995464500558921628047976365686133316563907395703272034389175415267500915011198856872708848195531676931681272892143031376818016445477367518353497857924276463354162433601125960252109501612264110346083465648235597934274056868849224458745493776752120324703803035491157544831295275891939893680876327685438769557694881422844311998595700727521393176837831770339130423060958999137314684569010422095161967070506420256733873446115655276175992727151877660010238944760539789516945708802728736225121076224091810066700883474737605156285533943565843756271241244457651663064085939507947550920463932245202535463634444791755661725962187199279186575490857852950012840229035061514937310107009446151011613712423761426722541732055959202782129325725947146417224977321316381845326555279604270541871496236585252458648933254145062642337885651464670604298564781968461593663288954299780722542264790400616019751975007460545150060291806638271497016110987951336633771378434416194053121445291855180136575558667615019373029691932076120009255065081583275508499340768797252369987023567931026804136745718956641431852679054717169962990363015545645090044802789055701968328313630718997699153166679208958768572290600915472919636381673596673959975710326015571920237348580521128117458610065152598883843114511894880552129145775699146577530041384717124577965048175856395072895337539755822087777506072339445587895905719156736
 
Bignum  4014132182036063039166060606038876734377151027041418995582553806466901368729258341160522025816124993789993695822370688304664951507188547123423222707028462645744504495099771236039772731479526109211090004311794404240339124784547422345216014091269896242057728789320308388075464535693734707938810361158822889129810698160881991361391615727898487922111925954357866231992015566112008236187570239498407927683927919775842288663953197267327615522763990546974302225808428095414868354189887477547130070092514353241631780155439824875566969089406890190453301219401944755635782011004657947505574085800780957240830989405542027471697598070708223889360327246648360250590423193485405740024818660966396088809547901243541112991057294564493176030196570968415627054119386294217737236705829632322635830102002662416478438021760275473366229548390019965427781460843016919698486005106981924856484135189126309511355753691653992328843645226535251273257107207655144521985279194687670618137133365061767680692604326802596487142424879424052336554494321865741845750005414127789039482660494669119722147859831209117695710217533300873521325189619906400613838224465802145638763375814734209939839362619843254361854200935168819098750162527330741262315680533040564205957680744473526587521186729552763984974171967043329744088725132917968485124011517373906219196506452837501009780475231936674958303684325425540235711585231786086215390697180427689333406191129678187071298761090238199532583274628668255539551286659571639463666278761674873780891713295358304373630381316642367910442138797034280478845037624720681884127045266971966132114983342843060225291800998287388520216891035412250834037533732042360063710863391716379631799881707736609524346067431213693134871211594265410252790425524534272056805082763168832785380055839924774513993312872314696842207051788925531326197927999177991421171128255733182296142518727575876101593203121573373469932821398066544389206962941141912977252572232867135437096743144409526348896093972589490165188215640760729511639332407683269230949843736635138894075691687022126305813977840524433219874210358515920200231755056725620223215331388220131477362331119420435167846194881185458654851583930079821808678398456988892271572381964480265039471649297678899125791655447634896125360321191630695480343247812206582942215664613839158662648407403549691008421277331933733296802727847751289740183232533826912134138874411587537072148434489199610825499112354149659416715243020346182605006236549464809827596184003972133641052969706618571561687011704990178047065972378213930473698742510372763853852826260631953919612454996794566066156884728715668680906027006860236291939118231676592907769781022362456768586214151241004159221927524018370878848684658164187227120264996078166702143742949273872723291189478841760522549189798371468818876307021543260191247813116898406629847737387213350101952387350770822381283290336805039909429093246363236388892554180007123150803933422140214159097502754441156418937483080165530589247735955574364496286938362823593135322482901755392013176188071632369230705598053524807232330332244850755770773086552102546479856865241592742983108951587550272842151337427500985790733257446974778514717423322164753741064203343873911505959859894843401346764198084574888570021582049897987375412534723203744213413544913921005682952291246029696644695148625577845540165449161494518865963573605166219797587702952678929547091472170854505976772092211830161122361692991516152705668722970188580451007767844433986239967364518420942072166146801482167949547691800161112961158906423261625463823863487993193561114681790843138704920497219883815661976658831769131758793119824969001836745498182398838340648927301879152764226110118671378678796232654817311851742957558547201689875931549991515035340972187105911864648544236836260504847533198372681672129543186083369951735634161845926675644115399774010625408990786348280910523027081645203785639678961312201192456238696520344039542130839856702031559650739069883838674250667916543006817208656138057336626345130349434110433864479062478550035029469824739027938916240527879813120208815523515779675977148726193656755629019016267380677895569115426761646230900288879599082370222089623761745116821667630909113297053145987339042926308730773608693851954656779816437471443388320939306664827788631871296953668897075687483930099227986839760048957379131637875344314107802027446160539266234293408604986954900983474482565227972953603366716227879694033469601687058461710870334469254188547991362387356445617844755230507550536963112039082535792838287188699545369099960024542135080095877346531176357217501893061794845596185695372386978011683132185583747282044356978640614686144305148838937966059778731252315662517317356452764543529368758499128496173025949468596830641128630126982569680227673151994682929383128359400800730647033009742194969397867732106855292305985907659610050250864697979637508638430748544527754238950354389404571972113035427133452477480922100499433629582296479031248198113154187002474014136277395295167051445941127918696437363960957340926932413952086407326427815908876047942365777403903909229226252129092284179163733102953047969448532689603563619318243124090419945712029201139189832010659468563854681499997644274767030324988966550143346180490169487404817781232236796354488293240003979784459018374622874519797289160250924013077191644744667079831907446016014675047387387849879634538532924759700314058964008310063071179192227444805709827095742202129386405849272260737870769456295985734252291272707948263365184386038334687999156723323731035874348731014319014672359686757028278160882218782815645825735630974163177508691319192847566774051552945532503104644040097190905665204611410283248812046204637327671846235824873113373034123535851718551400885999338937594799593962005964839702111477601581045672064416926126176740128698981250198894737842534454809505075861201705184249049902802765451776105523827736706727962349617080352862427145533868638674647621635903522376531004186274084864319795690579816037144710982537578574501401964606734516938171383983632188696122779521156237080602734546665241462878930312520760735314268127853512114206413184372047800360825636519029106214813659202770513059287824118965441521216286434750082511096818238637831486072817169107328121066318430424141551101448255356027051112429885809472561769503290478901969977310426678486943015192324838295069433027716466240050601698187879827464980534758753486354416047446209361934916329537938495521099464116817873898064615746425334307993580485350546795688460002265981773421773567346574241551369109003764817123662223617694812212158169860165209587231204816186164040908062427057433374354333512098587837751590927585021517620279297240368736722183517705003024583189908598536152163526107431442854174391559901463745686622770317539213510723170810141972866483922634430545450911424091655970619224266853425281308205026202294271525889978948848786451889351657070521050683440519622278045532953343858160953573822408291017268710562303350845615817951524349026567175895021778929616302540029650084377784855751579600269157963675920313876164533388292536102158206357715729658280040433132612140272022103947915774047681394936859812993227042855516834600928710152852398138594784429182314097140687415536884945999890119934480542332095414567022677110183124088577034207184035223269746212524708320333384846963664614426420999338980357883890451385386203823384441967107049845111443729321714754258385305719682104264623984894166226966604533114583914334886768314527778332346443260144764225200780823816350140331007279882497628037111262945933483440250886848466844285259801201047044164028789036672797521410884417114481113064890410508926775148007503192306944872367174516769239565732199135780783025193750190215687733235002528390196251747313108762067901840785138565711849300657314346796967787701918147432435368880447718801737606561365196160911276454420767194347998793760385338214424990342842862610858256411298097379924586198393594857153193649535420869601733255913603748735108955767125860412798934582791136590805835437006214619180833467538076124961206622745210375182783108944606061279552864482480673711218660245187076021181567794358666390037640555141608240333854073338043534429832182940110490657817714431406115312869550131360990262744133923687718517425890292711139888287121121169572479514569137506538532660065609376222907442241190395156802180983994401113294687869686532511825311652162444723355095362226595495851115378621729550619060175934795677858252326354523788281947715246424141202934670245380209752183345079219497823320697779797568188823897392439665907151941584911252454491393065641220012500307075134569170546657950628513232706438968999472833971666066853821669755513289360283904818899339170381382830023193685137019576555367344397397500345907203142598676169121614999422779372579464626191089018971078076898761801244103195495210458801583769766231991406931405001468005925383399201077190857244032943731898662908108327191861690909470351138983031879129637914513608632467782348730881613284583111745366299071443307263549292599904843844855174554634025101202206924639936318383190055108648734604528810643754584159097664780111072742553271812943448210019770733791851140909523998843075407964209315192369659421520580000397483091476492606940468048281634901478780014425466903183012195313405040260181937874135100391211424280568522832217343218449566212577839857429517773391325234970123982710656842132962072713670531585628640580476302740569446074057129250670136192085185275185779311649428558491838627836713048047320570250150645544212994809623734780024674994219129671408354527116135589032292260877830511009195805857592537799609204241901732311725470142447799886353484515819626358794478314752255102283719737644618375299683266816023955504186817402439459985266551465059469043798811380521824185863846994738759453069525025684128069242698184909729161080931680706454988296074915640851308149520496483541940056350562485344038487968200442973606174886536585643269441491537565521167279510356916025121335081257328911536240083436352408573331163048584890056692764867498736724967285937871063837364337621755449191928472249494309408397935142908533639574359432700608342105925301578912251377855985573358344672634864198752515613452910223366635904982715715461770104747504089416677887790075318553635109801839887000776413486686719326133277853012682629220681412084427939358117833274566986711663155710308663779187708049545831766986000316809626987410586036153344353518702949856385414013504665443220335274655069539917576038076933068673399231542660016785346281934674190287133321393865039012585301516288471252445626727183613790287375264863440341382950289536738341081070823467072641662638160920689079423415565415544093523000909042459655499558347303116788318768790020786196449106937448960496335000065625994308769918218117532397756112154058514439232714731547625428029301926759401192751887850518150985316736590769370275349296845281095433853324460820026096959856238442741949740512644749005458158427886614712986993755017155932619085888623668510044429325611225280467072107378374969832028261176123924402988656792912890438942424881406263936739195642564927755818346129962830564952862008315127847743704432224501586614191621134121414084766616850004752855737790449381521488307878119389635677152517700443598625113019383248895522656924874676078083365846741835696039642087136059892798010612944067324441233534104611388434095357600417585086903206201518724858670506731668441063355877998945850297008155748109516501339708308398677435237718856664102366195317472530863499414804202191902618201135135419339881515962422512857025124530919065190851292486672103057931987171154027738347902521013817932635496408110387972031749255469418772947038989633740538053684839862500994756773716881213362483372906037927970516028503893249938370998090355966343379594543393857619439969073876416575475031357342100897959643626247141091139113346430912218421332426397617431021590033646367648111866473215333561424765576016929343958665819514782393467237369306387879965393961506126345841089840597707284135690717573248058222433716097790974306041013186967353434100413872393337984581403537366546678381981115735252874653295049715936996306827362887519103246761552934739345207395509749551977003395029962758237343028420333856980432072114541711649988833361686311038725610601607452260800276604537588086629832393662151908732471530331390503598243861105289349754646633675165958622507210044676919618551144191211291948005031985175482748170959930115956149816059343618725964259144545635518370891105083518566650346326164332880670949594501221008865226782171403017037306385834766757756908497060699036637472403967682742063471456284052859300793318493890600834155472228151930479075648450763095792020687833295869010571410169415467895893923766234397059568374301410196033568385224669534494422044604529886447812303243369815606920089024378304637233100419682131167147683138237103836396146863068481497571075313218664281831894773101811973809037521256466043980717523127265465567042185267821091598837152282635562943239683700658828560977961472165705594943816999433425426766733718476472367893845215684320740612582945401570535852174911754718954037420050461252619221549665725031769139664740112317369998809909948202566349256451101570496666251245369829370047942181073261802638686307812145729359707078844999721963284844362680955941477223282704692602722551714620971927977590786466216404705670985017117826604611455959782225613566586016236155091134079620941423490044733734944396550570831455615770556197519856885379072617046894057442615170419480314764677588198245805514991110708278940489929815984675675250952479312601790676807548216870577371326887521518616329453883171165575520660362288398780799764281234277833869649816926108430437360963685319738454724877162529834153355494976546785024962619724067057664631770594248598642761728500729576216980475739090008569984843050074693176669966849426076793075347697354084406617389968364623754360445986017960849084658844161935174736658188484708144038671414964986538071697177283348104836430965020294109632015437996877591862615018792846939194762191455847664016969317280909644729562757288803470163283362836582801704682422551223524506336412190781232068031185091769869744931436653174905514147761661795615257091424626870921426153772807334619515077604027952734976964435745649982854244359572650204443485611522379011929767598037111863487441562070878839417195534319655201269956226091676001307080771515175957150512405356532822536302497166554993412071224143949961699966003179640440528339832860296716347191119277100624886651043402734594260451659728157939427399723866960225757348939016841178417724932792842710235644959285595810814178897596521733762549230792922096541997316437207126341990215143563343225996579081761345505417456543760556902238498414192686706350887441417030898964773106560825204937573907394584813121610631479220095886125576521265559115853565408661656648710665753742826354099309715810718586688386166739695360105153732730810856363115705196930450948164992978356889200164509197423055011582422464983146526410945082677782335972739021354538247235307628778236390018163762505814714880859010783891710645715508502642865818878885105510899076614850325368534907284181813661027044834773040190276150126054961895874190384311374655847147296725596621786811776219607455852197837077254961182259087277750214673688771038775480187275571252382373713598978744791329047432403983932004244483211652502611752940211118201058337234584034864574227810200730590127781709506138200593936779546014630761206017320716612138785694203059538064755958660196119388582888366460140254991004358012838108699804776204688584225575662975980043946364442061016378143365057147725242731478437916914945007628740732858651528582124707039037955659921200984589653967290356671822766500551504147096062559238712097470401466568328488127128944142333691791644053321208072117162615223122987279758153437976713979494564324839309455758207968141493094108989459309112061797912505115997599779734316634642787662861730837554573462339745191748434848718212564814399088890050558563286079628077673083829772294639480998765110246644620219192425600828996562323995526174157897858707146118489491816556359795756236851923837194287030905959361479970840400143320428366606885025067331691738040202055787012703056951782823888375506208988341157408228503942543079543770940443923976231093230318814331402474723753800935580269149469917368514574090096348578363321547574189770258467807477633852131070551000640054998215176863242889754758529656993218524750841275204785416446508661614647568979170309980255454798241426276915609241289998999441374750551762499989889776202922935559056865380485853520295522188744880920554250457015419395009003698380752089875202158738238319050876794599845412793967035367858531763921137171562917168105470402413558860177750713812621593283779321401400233370444782744252825896616155710291863815870331853585385758668507067576817342453134743338486664001732164359176960876199706001844975434858293165037162767244454671714475115808657642963552747840387966052546961337581079959622912645265343467678764190406571477253426299736077244260618237119651858084687036618695794075478789311587417059711343431227303350973799387878820501939565505465074594025436036966165326241011378797146265125327338463869344259066761066708758833017239984197008948737740667243072361128617406867859023220628124060993563955305881007343422807152945373290736658535872277975738221441943388251274447917399816259299528136009365562772905944119535864755915645636481389721332489402998780438636631270258475271207701504449959513826917567118882270665697324654384539229093273515371145657367473351701477176058287971525132123630231302192818809015653271446364720664677553548552591939892622312036148679132676222630440973623016172572796318062245769564016065503400855132972119620506711200765168117939786675101936469765690013861859011813740916497238562803149602498800743366839594464102222803276025264020852530869628324622203235960629552097202049867177844618660210541628779338833715233540816837614040165594121213747804550323106645804853319343703095281130779452288398474053206030303124075718699502769043354788987366303158458622216238559388852586287397244823587628905287478185055937738386553460517964970178405297818574001552698590403422567780250925573684712440051738280186677970204727172629630250807588480950618513205146384314670376008562962889264152845320978121184751157549620353870769614740394880734501759269207166413065178816343866013426191134590442802370423292149028056236608844109615255164543338823924604724010260098700884832237411150539327434122637626938602730735567837232664475826678490431572548909373831937962691028377457710962109223347737888551476979770134673578428196780307228525530719932119728519681020056415065579357762138062341940715505658351032187943326481465363443863803288110372057213933086575266979834114281470948733317432538033803753683322267351759794373856980502790076050489035615460200962483659715876640167205197093480143268848588887523572869448200676376187943746855377974486709054344584706188400881524241541391111150657380625806644492114953522924820276748689110132199293929664946288230813053178306354648926761437335954106994213287933139740635598749442553854302259023579655742203516047488166774689447569867936622820611204174605992950298769916077128982710510288196427378103368565164358036180004462488782696183306161348948232055760805161621292732118579698583726535923141524929496406363413864269242809640344703501492582452690207020817139987977758629694318006602700285855738200063021223919333172965177631394627287558397039465292625282839307496623059783681956962283709629525150084752829826413171823267961454311822679808362195466731957355942359238281197674840013554610317457007073447347555573247289794213606244753195388483334301123060067869123641067367400662684880401594438208468350024707708829070222659764366228295547652120614526659158515804151065386675507811098963031107165735090412267764271530335591618530735740446073375852583244380837916461995678501069928298475649775376625135157948147430845819708807270087123568447382546399604201642056708879576050534869014874330086255052538159839286402227545108717169973795449513568196146492612661017844433986693504400636793705628179607690520396302365359326058011744993452664586783672366992937395096218263188368979803013281224849637296442141604562461162491487916232984232571386163189599947711025232461545410107189286669897464249267488386815630421031187491074169125825170807382257645180821743080058968318717203308067308430306008719215999449549275186652855329514480288672236238137561214814466389304839692226820467175658389499720385721411105875447062795842543723282133190827930422906881951079517628186936042926475582499991844669144045926786553864972953423185548601733151216289576168751452442756075554834451826997459883888370003537652029989534356334645187913576065296792644524200824584132664698775130541572175057149540461321494098316209986410309373087546472581337568958627121819007771825027522508287259305852577876388306401427150201948576417401656477372167355512124351307696967324497195496192739279215969258543281938589966654331010867898501990694317165024492189477378166203114027287886864811921598100732112244472230470554383307370299418471731149022017754359690346403013127778918768231606030509998499642148046196935810238064412531126176156308402893998480786811137872744116447605557524431862992124455086194694346958998213418949062771097472347167350139668646981167262664987259407795730228841737389025744020061321542917633986016330050107026361576525861361343063325677323542710062288653622008100246365528887395634280352106633520268540358179909328076856361340557918726583703265608526215873247374438128953980193021781235856634443870531703734512403790773617204413172216046274108987822929386890747041850246872279320141016139210667033177852792102956417783343165185457063261014219019520235689446075505595529429106951281454091113243566908586495716555268930016123745659467401133529140474108004345232048212474448247768159489601013130975476694099832314918715403248611252016649922870384793692622229702610106986985893119003277409080679262329717165143031612328332615183711602787127836569009303906567838743875732384487702190656722551392684192185152900208659556329503223694369365936502102766611755792835591109286320654357979406231288936371342647544766199694127510725974843267121938848266208727537109341946427283767460259820749824899325101096764583474599804744627964518125872088655466147810233418924212562023675468901778045807940836323107298408868655304836421435151585464449138540150345465287526413345767386761993053273799594296798277380929249849357227606453580704529153148918715666037355647559732620792511746446385929050322349254324570411407740388768669446180113069843465434315221996105127890401599662006197214161055084961947355022344753536314097871510439160892202614670191975302380638766097843290952324948930552090545562940368121762216843274341603413427737554334409079094656810056060243733369584954911218729530084716394133205309124662246096755881559721492929181900212738251392916283098708192082807933814206925026586812173246109020886948080388323334532916853674293858738746575892137769457705381830230677106564567006150503545480458411511998028515408053429026809142780692764408220248254464937173642843127962447327355407015168381094802887654612384524560495973919708044119957466092904213848780764642494233732293224036130949318033995088929763380074431871523703593426236859383367085483569982629686960150819843615701884209216590737774519614344445579276002239274776296217803220678929087832467329479669456393936850538058021066265509788330120339443730684041783493433403368660115853967277552792249908020009855627048227361655544622682459131193333057521100975332158433023062932561369835916252724835530963063956451775313220617962849596175095470955736265891458562873902748194876719191960799278465072154943455540417890854465225477767693389605168449190478542196589501573826166025865606146645171339224009294572597815717484786765737153288478556654851482881403515032894695820372415060115302875192073646119765406141480092567413252348512968515582746901168207643774717589960607598404329437564395139994329635730111110633681700603685437336109634272210103033418054450224938083739879836153523722555040316183597103138650374921578649988715021842250779725214483676183162913274020607114407980836315188919652318618301784597885748980354018002765408849399964518595757380248305671577492554441816003221000192908285620784557292986217457457008937003087353143312855574041832420112317625519541622257673910321225464856548382355266230023024517109008815119619894335099424334371497881198051261886997463187492354570040820824145462052230431910145690364685647900970770134523462958114721686909957771284518586588615757296975240405197323461312166300837418411100951691362769269009598174972554545066600282223191709144658531113305195792079519199933519361197220534355669335573638622367318682415058083685744459089503504693694026138488909769903440659982352197168694607468610546527603693350254013923871222214907366013402318469821065219011342887014544279931938226403296808841138321268966015543190588816680865180553680311946308586320183367554216227804022237489563325384863487502698263215652914982484331951463332308738138198850029274360944596748910049423934828422357287796788094130695149200540222035121940850938877624298622532954796851896147160661437050220616565271922732552946446710677232516460729461776038659142224476257345847794450942373578079859499485126730131326576524516304890314331913177850990987024168111201230369088888814690398172882036590299111655540010027485735699714746027888996894491074636860280327147225823944248442261836656573904886459040779317311388300746153183682936598566496118810851117210155851497355418607451942417218342405303407466882340739425972867428295651119808720504249639132122862955038307890969493994195104113046524043749160794961436697257609684147927251684959704460610863296104831651532986040825318902300447440658625380101877503980395998227932398085723381177857528436566512859064891923925275343188259160781978747236009670847930228634801078413556144904608590374066578382162840734094704556882588766886646505226864738082307119224613333238133939596846371751338552884133868538305671501850677644701334294545522736725909403627900425428575515256280775226097449131464565340866109649126743632594122749398221333024430536383625578216179820036875258724363654014144693138078275083473221516269734620056229410319211192339379373705969871361716416377679106916388237216722287776659174301797860870108669335310887042573584964084549830853806105001556741627463785217549742961939001285500174633919141246947357557108556599045483102378087992187545103227928717679344616781130238768651483461192743956507585364231475371294215456739427454883014263789532061322035968793855933561987325692227761095404352330484826414411503719090531177372003299897016197626979927395457229994791267749526153303628872678038332800066583619933258004913183349079048604629414316357319191327195558231837077806252686775830347316627050885149851971577583062612869863587283067660531257911700069173571826354880947317637083284349872412544075913402708943189703819014885007669840239278005529613445594638832571533109906638102771308609778307918887972144572710048156727332459584973070036821333151613153819961560585678263712112030470268059876228517029425596227162809113710893297470852860095341562560503380819402738344574108370654720306234445795829592390942617361234054693439157976577350694947971977807804891223325574434005726664365864102644111316060149623095131182327136402417631294301589329195653465200427192696211199078526072648627433162854506513539229770773150234458156216226928518387866328495285429966654858464869353026956392941429258494349958271486167595912715257764828267182760461364253896726815111881010426744887647580456490504967345425456474016622973826347763934613338287211436182257186176588003701140172055173997504727844175707668889600207567306051631200903890130181471560130625198949120552559448558746812629141017684709710427004048742389198612176603676356004472896668928059680765558510094787743457924782484751630770082376667308234073330513906096857478178233683870995690359783554071103130624719949126370238910969540603249868402536861477476283095376112069159050062207820661304599450914308949364720434475443492964833264370780845446960946001797745772495904818876793482774452693415669479497667787475534772460122493492137810993808000151111691566207109773752171706281820506088282730034274961444848649370619977405543694383494372828173907950266259467252174774397940298169228566724046348868983056956512001432266855278032438198722850314961928002201732958195918019411712018092436685408928571063807663069906690683161055648082570690897534741031264692365697991501782530491220185233054814248544978607008450497309502054372363671000481526486566864005283493893364400968868076536108775865121526619434205088620757585531968138561890894217464218137576596629621478833379373398964800435850437577640968460377641335406648327717013081773794010794014952875540770031810880177389097917673211290120018726648863589367709501261388823514002523445274937813308340503316275556971834095957070311151685663096650735368840013991029460386047281639940987620333442175681255921413498908635648547978900644835092929548172477565064649311738623373240808627814703749594470924250253523961355950685704430632687972782682608805157573492086682988610293226161060994095786201637476231248277843213382720254902308399876150114954386985250400461709342977255489015322283778501777263653261611258177983369074785018325317279141863782640024236415716586455649381512343173971977193215178101228014653700412479738519336676622766507435407640526480204490442902692196646910526472471764603114393090554086553127756176783454160035662301219800609443889189639503729673575343707967975070419543470415317588945540317651342669175155501366866991136532252978456931698975357335541024815635056389334249470576140186655637589083443486141479466860843188722766352909711195732712796762394563304967709413436958934023108929991080515716005090622028689543836100237553062641924208312610445690723253952243872122829998636223014392769452303784254871986926656774292506382959408998515669855260604591417042824181753974969549598117789414318297442937172941430209155229749282461303079594444929813302739394766566525697098691402533281916843264333759399142217857657800583323560684781493900290697958129276960694733882334672163494056850950141579853354856735690088854960442960294027198017859950777639407901068888088712399238217925269809500311232705165587641320754998776731203952540771780852157239190565359903762414761448208478958513982081094679040994558395347872876020222383814294343590776799037308083155653657107998627712323242404749063269476117901423559246446246049043875239453357276008842608058146113940343526263311302027595586177944864081379933037042171087385719199524237547368354426768791245302511373540084062608180152747935881087224444118033523826554478381262051914523602485027600874489145801713632787713497584751472006327570249613430553152241216076230132010422320276409137336534770453910403780621671522392365990692185624618798127690726849905698065462190562548843867811239017679715179217870401334571969427022770776317456491630491922052986374561038895211523979527427416760633732814942980365064600870622485988343876070384800055371145004676234932204325781711685395163200160695744715969286104365799253691170283772945984214730340355595947699698099014443315017119481178618492015118130740993696491711908414895922891067254054340531857393960808153425278566229517436788370382552922294592734092702611580967299358770050314659048255709559925129488294676708030505260000072877607457539673939927320349188082988967058165417599841852725089899200883920793567706237354669531323071242303361987718500437774770836733074952878390038891081494672745424420160412738654295861782690124679189579057467108678949518611668443667084341533197526296153404267552816832061728386036482614796835743851679123120074530857086709990170706464291074762677725912366546486070021273493408424692371122397873634380087044920399569414776671962284365618374494404783009454907098151420965665235024860054584674458829994719840088578484926907349049795048661188990225467479501168878164556044747702179375760301749116431544796543423102855910576078960509904137472289682236128170228966241929030873619387884286498641050901436813025342891314442008308026895818520425411382325363996463203822969014960406971167617803490743246959796489176709522670239269012944596424741201659344241742588809441910058483052316791067695730906881611834731035613909961818300238959553674977192273324582263936445381352462640344317152685672375636106063538302866212782300594878262565506262507016585942350299700482594486537247614137407731144094911598703420964140653507907973000042395425123178245693161546538944817163474529961240214053746847925700387598211104540059955453332404207376202292184231507885591109535596794571000113817633180093490914619710272097789262841684102208298399555207745134500720393760778388467657647832652533774955213115034905031331170372907717242425891871787083064105096470470807217453134164901845190381303646624497955153487250601970472944597069341107901218626561752688823236509798434123508741666811161583229221522141134524591417586902457552653169145320821793704344419502972752134467994934869096407841923356492882008114296882064839353539886265242831143174995160762690880593232309324669792464735759361400066588228775630758091397420766422347053339669946408397898479748702174241725385759515809588332981191183232863126414025028855857625276026871740845329254485736651573547968942396001683261003382924583419836405578403022925041315498400193585323516044788132412164872883956764107603580761015608253210334039670084993337626961638658264147568821163860874793294101103518067608262144888951715539977598455880517499923088750685836655515716367990472782289753588289643252576984143053751695117510520372288167030240744170016627428431866080813209936498367200961001217572321533582911525242084857121897399133912838543725576002777205065137875354041868752613190374824508337624872736746075527919904054365009325447965772617868469787526900954662228938151701419250336137578079213918409114453283963284518704329695562584886018310263047577013189386033198634495681666587191729216364260315068566525433195460645621272540637136201750601801280350987654877503290379842996692304871979737361237005004450111017209863421434448142080922058731517285624486661835457169958250859601191760247804917587030250960118942516181532668642908379165546572246588236181452870059164059291834098650100893185050300749827811324812752780635973751170231793524648742605639519261065842348084780078197623044666908304947840322375238921647068490029703328925224630287711874385761906275853624862447995733481952579457361161723698658868601102154939831901682740902639859568215016543057699249042977532851613233475279198188446078303777764933793897598006364490095043111364019162853307148803445148714481253986183475235409501451199658719852163307602237212857517328324954494638744581412459025744214264604305408829548141050865942584202478886159597134834055563783789931764838601652428918764415643317948502222059711181053351828207618627913195923795822057302474405998878770616459666538646685572019993889307039142440734270135086457562108234055555913602152888317026235605805447403780314423093360140310738052221104158155449012986496338389532742495169987871687962131277199254025275976117059067166378905169772703115868726807285909921002990680153114176973572430721426455006622038399407192717389485597717430090700963070646135905401723517178560389162691795785833726826368236732660871254754437950905868026860040340401366364436635582586576320987349504904768756226289709224527496531073627879634192454883225759117756134433519663815666388742633604712659979989937746235144098665378461260105924345684318065367788517213904114086891434976034802130574195431083921990953774040907906287164994177909873401433541401406281055944976806366738199196301246628425039477700999584927413239653022006401820331668136835304320862451446420568841630605717804812802517138613388353327527224213450160244942641523828884896780006961744412491117507024662800007956065079359572506235985413451355939632323084876933410583780998867789105653437541591182243656510664393423174423513282895091974044604025713441956635265666081664340113582242832446270925321986436636522995921352610302765934147247681239731855805017623392487563837956337980740647643258859259625230968166051374546932818593962922126306950302112224088870480350891943437215741441855212365932127415525357096827287867943215371873982557655890505256276438799243174077765235070642189254085980721618799647345053650888725401936469806052224188055382756611213257843744940816681770265825784014212608576257356134558715010464453147873634657049530995900860251300368631097592822266898046690705758214212040260587867843995752972455054166387060338521223203534544057498013093445693457199722427763876742236301319402507069545999249384877104695916545027807772467657018619860020828516804627461416534256181881280343208607886177969725316473276995379689412004699194032637410762029497719056835213138650072080295239993255516147171615294023290810597837885201934456664948583259896437704235526839153177878227781877522693174171993336453452050588505768631373387093831751846908443618641574847737753198886730852451782615672785238559503699166184109989475413644759088959291864469293601685700989840873477790483712933516853540988879876691953083772843738010931900826214618175555453671792496843479184959158753655785508410179144331715650847643903821042480226896684782295815749440163147413334944594136460082846748144188409391473422207520617588508610707264101538667653966477921939715922123508830124397049331940593216432845859736931979042092526037821186592843691795635380307576664123718289563347610171048717452247269745322673025738183653056369137030817543511840883567616269178877715702684682190762738439841101367629049613105677104357025677819148511813743087943572307059694143041857016616090920629207137120293080951224799013902087430936964531424771387224605271712394656792951401368133375304662485933127812299850490866890006627921273025453571831182453606726322191198851514821830006179920236866719614945157540193073071059029243928716806066986661745930649013493720457426416759547001036479949983232186950068072545318925600134489641539080502465063196759686205863933348252226827948448786945594506227633824991438061606112010641705478589713365261833710839481822514036991180735281005731150240138695153195639379922197685245849723704580849473986791339573714845783220497423105067071787512857119523806835886839723435656244732180788098126274270975050350319628682405469001773598347856825372536550018928016247538635999112637584873671673810004186533820777439275174703078694582022014840957205857731786850095893923052384394230612850272582984531441037446961202447936669331101648380773106691320617177061861323519654225570263051930591865874337327543075655360160373622977305945734477519210788855269935472318112232779399101592519558252467149084114518621740613293716930129261051303165246811458541017379343302392231344541558403725830432995219203720573437678829112607567232912841276423846446917501077375612727454000827786281412121825259006542529277939897815231636500332847040481095233386397000667544071303013369884726442536693319934157425008544450572343068081204804361117582244301891415246895239142374977327742276519573650394798160420938696928927504422600899900578460921357302715960126670268613664406309255898668806195870578996366536709926807407399180325362544275565838974676261850665812318570934173696
 
Bignum  16113257174857604736195721184520050106440238745496695174763712504960718342823532757033064753153854111107217980956972311094371313807551987645270427615679688389330444133499923357612295105472898569728180212454103335089943629049973591907780692062057296552903280552403216694239075203891327355460071271019202307459542499755131303645773654911843755650169520801985361294149607500956837794546801458249510087206015145950849590956971307083110865729968620669481023248557683622154370297881298560466161255588004643805849285632501063457275606556201834157077069866350431709941244149430340376804687891750978965251971591273251528666837509921501820059959278974772955137066499435490409471962069956797070262724882828175396608842375949253862079040514343986517421482079629239951733227576757861140019256666088017481676787816929626050753513514197997219880636635517074110811110090917718919814526080394093014634680319034280918429077805893913799277691975372698510166677624523615113420055448312509654324275129878416504650858425229867602462924196108810701050280869433809450437796353064226137994659354596448860467864613898876433352470791463814942785502343393473062938759017813105282015317357353936794982542364760489912329987944237397830950164269372928014639443070854650822815514356651960897669142478258221975915064919190375531839883496687104268095384564100781761981553851400836112905388609963306865737671824507168252726831850638694385083478775216005992042813943577935491651062098935775915832229588820317867889367035902796321364702417695064373176131935749829552011220191660916305138249322188182375990720523193993581101039054797188073579289719367633920101802417328162711625452959719023888275970325181461602877510137836219269753293290552689428123837471997147144676279554641219338382818600605281421478609887659834378915030776762175009582951300819040556136027426184867045130244663144953753637822529952539573899772230761617078236015566109248692819139423308222674016049972253136330137814775383241846559753843852858175253058610850847829770607304611716124700187691915857017825082140844518926052368333149254496169541987863381443150983371435049841095258420360369083090103295668638334162824653920097285055010378770414275994926509061040584889124837133768897043968307127952138470872615300450165518102683181254005665179713318415328532389713394405555327504617945823008727675119463672887489448804028948671392868411958445081586719122974263349688790928372140143387287713663300809089802349683864622705829708886636287744223635122172790989703032669329884394037058500143828581214950116716860528315076226477760817964144324748729943067269966484491920136287559912723443616218059824705057505221252584287772642059873903818958395542054498311855040504093132827278983759273901952743640374066833443129339180348794901720439121062595011815290536015800793598971588035725982691325656250421658993992750217769570407199156371342499713209335403268331926928188925916061040172477977503083591547036451896298938818110969658258921342134546078979813635214571553241776199842879454073915459154070443752256871790251807688080294183234647980216888629693731884483776952715044743111932510417226055752254983593141687746322886248817949397875616943177089463482273724996741914742471298389193274629178895751123671079093083823859862474218781527382088357620133485554026665741444384924962487491098346254831515003190218011693146521567017873913667600010316023793869684989408495246498043176139308009095514244188928518617472341476450718550585757427314736099010854358912574655409776135568224967205992618968276136929876717108452204609387075353849590890760173812701782860785041170295447608868245841325130970084833035387972625018732615336881865889102346618250302128107123931292918068737118344338313545322644116076475684035459816775808681366204773537518457467006185593938507894394275319133020246665548824289815220177922934028682011073709243695540220528797188216035063505220992550596941134052174060707304493901052826266164853364626816451469256847109850298847543378453288094059009149293012009178558874974148460461498624809990016284948394870890941344591524747761613600260225600426568174570070045347056341629382557166933434677222614214042092138757715890532132676913787639898243620223799361106862973768594284274043455832279049845160465092789220767646714112126942588742429095504819910231371604370996080060100553100946043950173081477095804496368756478770825917893792367184587264849049607501408296584301947812898746674446463661390110084018682359861055784278997703386598118473386824411884425900743923891632847704500432374995763635114514642211793321534245359832625617218907285949846958338171959464305088922422874915346835163452079196022399867597797151875270498642358977767549548630912843719329065442626372490328088854902525445385704617185212944852828890344516939681736013428678388093318717099393029176054922082896708075278499249327762753380790290331022167959046721733707106603767071755800178878035216340716251277802299688464456855269524478174569713858648568287605824625725224181933891729771334259789489866255517134580570061673257153156886259038274884109335731435506427977689573524134432895773467575553414576194129483412582388516519520272077075593453453309712391026933218291003752842366964826392346249973686284107809735832796709401614378658616463280761013417942978636282203203768333403742037291804901258207555712830451794416027875524272256905586115783507382582329090294154456685241393226382863194328140271376402662152619926621396091859827640193154615302600514682313044672676692772785579861546932337862203629144500485144214220920620504964274906403793380400759683806624256781626139736423909814831026013256846856732586450576393224614214184139324906423745800829875492653101863235542609771582492888109814529526633626102763297644073625487204227577620158078985084218756865575287350465291900491632578645150534642450631134519553694744183118306801392108677266438369422557597062553304608113117614574553892362663424648068025355016607192728787088941248719091144590764576296086737213349155511388871075453626679342507908498924421125135480705061389573563521574374588408724970911316664858091288764884218544916059184427168410036945535917998929621927004264578666500199086043729403586345112128718657515248368913071819431167132071087863595825163699832829880486628736325970480429825203771271646270144067855164136771945088863705208212338393890892339089043039622313258084119434970801031873990546488861948620686361636593121938334101829346708396663536095623553387705273038258582009950145521716721385433756599974426047141252426463813477065837402142547417568394251282485080521381636783698643044180238590302051740235382131516867839209321760950551092781040664950530906393659250310390577375443140554770765626200352591328118731507419233418008195259251202450519516278233172857112414456035849540457132279290528779704622758659983804569324757625808281249658694396781554316393777828373578209339939865847464428662506942945448243995933556838514100572270345840987535866122955269932208146609982766788167050411745972787651653016830080882640689084736114935616204292161454447315719447396478960552299510032150563495711998967213924924261204026578607397951827921171653388147547784366789196624634279261586879091209254605209668016874142841942044300834991040592909973350993633342914690979764928561803595111360263398245785164180812243072377098789529799839095692375445307278510309423391121075487096507316989382380761738773733743090629079470189911572246134970794415725705486860803608401970618647845484848405095069817751467957166796088955017941564110523693010872203757767024879518970026039482286777736274679858798696107948697965132605360449712694500763776264736131595747176257264378385555977015978818794653743451939227551940799300001934352848833919345758688837936939611845519565591621589084295505702543557086645415628615548218821988212723318533933604986615890456772824146420122586057681135080279024654828927716024728152813567431485547958876602767207539002416214122639446318806319412056639265073362903063172479681260716477067202620345532212559767329554760893005200949248589965677383129354497347728742647165682572570830498173141872137976455293717860729652965012971044610125868454358096653555176931556520771773929908690059517059679987457436987262273750125465393042661670626373191795950905579659840066947170524728018719322437663864972649660652137470599555666725142812915016465847178614075083593932991376427399472684942137512658720737576268521632975069656124582815035489601079449210318670149965079822501528403351161013574511977014405691468766512419504137272146292370380373892514366935480048430496357163782041581264343926465653205116056894985701820364874697437073617253179973102868355707947323913830472063964568410687731010929002697131294207196369741812326452371052844029770704542504800744176471756458557387995227003004056068123350592349849587206726996688593251553075952578822619000716568816542363735887809870302621493375113294539382060254211753861190579294066643035755863693886173098320164296643861308375363938474140779306576386862513978017021672012349400669793627412856034471490094553955169805529451669174298412950150850254478017871621041042877793040926570905903164946327555564732964165632731458678836786879470211438595161203901036913107683861647374778139311469037814816324300061989127809519904585473356398821301193866485955287121496624107719970626795200120612559172719663877136294462161209594384286352697882825627400553624338731938607743807283836524648520871728361188100583654791521748175350234812324308781244644236743805389248502737707917442558321040993437679132877756762600166714592838947363886750701164331035496359131715165127547014177732469198380246299456330112601395030069175646690896410971416061054996413437172166657367048279714069164791297818538002601798312594280154770925053182262415422985703712465529129799871565112736700493670503669629821964125203833106740860770221699714111237565303800775313708475720318625744021711808350507918559225700066888577325078229777176428642727359192085627266868386014920582364239766577915812515837243944733041783991166353117328810061472981278928493910380360774950642679147041223721830715711114326628526241728691111734569574696245111443633205635880837641007758654042286705647453479999072309460597885203327685021648811551182074145033328233201616359885504451416192056916527319522027737938591828249533719115542830306058565485211866949730442037319065066071188409576398902742104181290340140616670025082738059212514316121681002615690045127548530828647823304591628098751184492725043199694814145677783128539654189327014333783344975807331793174911313476525515914413508275735185947084418163235857253639989714502299800067382389222874573666120004840281905834903812928827507388499434728083133585286344082739738277228630707692330125653826106743658263598367244205547244387614444022112201170132642471027877617528525762191306557861756797917007678629902625642613170745673376693840513847761678572020301677291983585349974686542644198832714093326084038219973754116482309069016131785074659874280289235059026942725935819706701264935694618990246100418847293138592147165981983424047719116492694892235758328431720451252036781309472254377089996160754641336772142283555310193420129993736373981798185394494154194139886942349242884626627695145637944651910943603426272643785626820287153824743828680675054672201523835454936459420842216710840149966230539754111445212749302013658874747849766102631275922326141257253236652323420478625229355132520998054618429633390639603645105517752154225544172732952958578411368480162071005931282394982840379690668301921845417282761681137892533293546818211897208982306403321131455163634527922634152763973788064494818757730826876361111776378220459670837674335147607697923788944553603008514400693141822208370222302934755965208223389626362892852356434100402946973137876120906766964705251209501129944948274772756921857524766203657641947430633360270472652172204782577924887475034606642791115695067774174405268772117626165844023601108210166117197535320930606130805193178048851920401760657496337034998270148512837588042928028622232452754359801549386555345474344625618614094089096644783763800716806373447645421500142419998544123558509893246899097116566708377658077107507327035081904307991991804550468411665752604222917418632477529295669433166643468995557602151108168766247593811449013793031185360045458384923153541010492084351735063472929842302958211409368168642445907157133838642642050106728111930620127281883253759699201702830749729908587790210094767508520773344999474531150558975569804372813443859628142380952778669798006518295889883537870330971806443619576437084653576372046893840431410810467495063074899177549549765478392280872067262246060586960433199487292947701140059142402567666028387027031621158753180603384271166423681775122558262777830937328618753236095429230853812978176943468141241867925928254686687934543986925205764645522504900928622639777377394448744246991363914993688426260612772294511379613492269800764229636361194516354685142214078555837385692055399550422747160388448783164023242944736877692198867883877669349766312031505125342618158587210294291436922785517171028415724984971992733256660037585894691423027160168174776733210546671445905994571491511245722087019385561304668966565541797027372221594683858311680472505528784156180135135295163148128960053379321047428127200942639207331483131676808339277292350979841644863865262431367620729236393766911198365504690219264398643762805037959161005322767126589546436393494528280998155568520940615684411170898745949146339642462665245225875915483337523239846667738061865684234325478942262312888744735900989685455179980222685827919034227143955530808587837496136249094143183636735676511026650730664478561686206976693106435935328909596273665055251535911353011753557396394500483383650726181911969944305122311277206823917016603494044358500694045656404123315985364233665313930406742090854323516907820090276739560961781799613769742324750124257366617554771514704068720774975981354092705291779785573461627141290804137112211162778000875495473271506505948553224936749021250254200745669159231422325722591263257285960217792315983245785388316685918678332276256179389412608582512143643525027920388751702540281806469505098821104548696487939879098120753148180351040504232405186865870370945692747824515295495985348147056139382763254511400707577720875010160843109225374666599234135016877288629586849700550686964793318551903174420820697937866159134119533305676160673753057646067527696151320677761828558616835796317170118374144153627484133391835151755708064987669218505826732979913542865821890443424015012080550160589522217652796485347544336138700304614075911139873257197441021033462976008958444873245411245589106803355019013832898237929930955627502445932328063984227125923131561847625308482419414394443180601555767609711311087559198853606290167019685786823450056251079222395625169006309086118708033677325320203968586919924589922396898377885207461888541962337333694782816053864489692980813353048191466455298284215791571374747092387552370322210166900202993218652112193418570555180862819103676436529727333227276997148004931559155948050806990503660123335204883403362684526022568624337406217240436346330596308266093209060476400900501736461866833734721684113743098974014126545713298784200033212311046363906402437682722468862706147524520180612617517346471922273350966161722761120740476082741542044983423078444274728318013662953684403965367951809405919848230074632428438325015596151549239910119214080283697321324049390268426265222078512272478813187092360177680944815011008988016504613066344857982241662543766424957465151032435033534463426010594770563961281488267268706418995653918080411295807051697482712993395741124043554924346788670478671492757704038405330601520669980771391901776576185882543330315948219174420947487068531614185091707373599505760732217627065777133041579974407907125837267208533840797090136198805538070774030210878094190371249371981055588377353074995281634320002647054578003162225500029811960672186465007672830325748726949784333913664200225697626474535621483841413515083504956184266271390877306176727347330187484973333510980344690047872625386793499544875810821414768769738319399150839803968318470766231632066769327531130762627074644649130204786526005866060615281804824177101685018240184206997772524405532698271623424841611142284230900889020763447071101301954756708647611568216578737176223564135806223063683265381070325052445480230145258070042568105305065663020094945608606900973587424360221749554142756969249273715864071681578590887604607999042808968297707048268999904082324268495094010801466557042728178029022640042656810991230993139513842129055175128969653358917210438390434139581500910536274792698594317132875843870957016735530216907362394319532641556843104482934284778876656959548567764456783001879599562908635415898858311456240476773620585555344590807987152068127668034689956648669994206542664048016307836214901135295834613801153247643658100630582271741201570270808437105436504503782537814629870284465026158841615547423364048845500201014957454037204462955674604050862312104524203011680544045023525994623675686459359580261888128947840824378535198059322177257652535615624320463088199043094202026934409205713886851708201930462163612755000123066997643804232730216335291210029549280678608166384319463515639076481804131675284791777199019909696371867051271795266010914817358426119890461015898635574787165094043006162336604870524471371030174464620625751915194411249905503358242066953762631713700993178551080186525919789366321304271278658121485437460836319374638161490369536587323427553071630452891109544915285201702418157370604574958286027703724696369341853223943354718492097642593325444780743868682970310024765609342494739337628395429116030436220089921399103503716732260334940757373972466026379170046718770502699655978592143388941803817875573206584577577603892391126288150975341062435633328037381001802715313087203002468520135941520006398941857294348070151548835655640238493071426585614661812047850027350324883599555435147330551128542723022115461936064387066014087443730152420872248360256662077740235321589378801234643609372780257755415288985401052406609444416005122225069117331581393952818400980803060769874033536024289125951007264097707218662139987799114107904456207965031325490656774371474437202342939183047411473204076423028352099634365966445782122377780452520863519485660273948679885652203147136004430583530694582657742915805516220169326452255513822070023244436143824921724913303547015418964621126706036448073154025401300997767860171083779303498348861662171771299770713060016422703281719390757161516092714122653517584650372813692153497455758662296062679485058414842327320972418377941910931615029993490538826447984237212288016849023779243483629587494002312740123191551083737294496001489710037223907390326017200678242963390317536036900487922851084841071020445052673521569041849682094721554711885952823695333367457973451374071507965491842933431248116892356100677869900544469506155489044772623906721391011334771041849306813657556859289338043411410296431800234178209798153476408805616712392786919272431114217659988166354945717434473388793031586970236229449561923828149750160029515851499861560916475158670776410533410181557030008096663858289664193808670816065113813423016410165414766617058586516916789912325953004524732091073687411082706909950614219618351130273043299160671063108199868361774557412371658406616928625622725012299903278156664855803025238357295957200884782636823136854622027534983585287738898023386839841138896619944868698001451104719025046111282838758216645148438720171851110428013877174809618445155736491520745729904720523246556082724800657398928746839986438734915688453853039675042133490295145835386108884299321330650391655985424533914299037741683253428192908870925509652667658720126312233896557590053248026040311443618758685047355720712880590961516101607474539010722315420569807051586702456270515362309735232500200398034728604816704978661170296603654583138773523007460054065887516544434413978946601727159875210083810599676843227835932997285740075397993950267721847892905773590352149708586854711084070957541870896790448349675571527983600679021827411806196431508606605969536436343226414585771659800318665646821206734303194351407823299097340039654693057669905441536067495132192561427322039826304425550632355235766422944903543748768406311183323429859160263077281059067063248484091782775322273967164738287644688805953240905112974691226747087985799681406450161694403055589456505489259726361778091269407893861879115080331745633199046493657013524098669031832553860726864006228326588225290480484363676746575187810597009227047178615664399401875183734811954887981036159493353024161758214677966253334568190436415308366399849861034093873192270315844217201697813565209227337091759421552741838380721225606983843897755873943319444831582473784736220178233524448000663248800112782060451282188812640156154534166043185637728275224494656800145269147487405326240002454665000695350583164896744668898174403818052498491766451252091944255872679811481985535039482455050455114737962741723328374895244156421090398805091089776965119798256551260850589125447691956216152918842947655600441563954414760451586493780560358926857593880024662215889771865252165836560273970906476521950202528404602062371283000022934716165041128187914152610524896941707407221753994073228711011145256526889738814957168837416585906704837778090333197266280914917945945418229627397793786806002529254662841997250796048088450047647248782961895413432451577808479412730119918960143752820968994109839574774089984333382990160173005735275712968900714241583007704100702696114918567285391258373735580858083185400275043534067425514617729293065225083065016733022499743958009250880484226772853839405891976634374451593155524122914576700631711226175307934685061830339933940197781852436555195159952457463688337113591009088624615674787480267757603756882108927501376052642298370655244132134911337010635291718402515130463057503796408035756626618758229190034319667523278624054122493005440901330596622753645084644435916157179929071940972394533211845731003027323788864924307030660560273990663454776490353239452862217976344138514017237639777544435530340448465845330889676210760847933105703466837802583640868648626653518478370621469617789239366231059973418609304773802723978620069251384058928856015008671960380623315276332139257723382777916908967716057739042180059105533590805921459852181484932716837281748023189616105120850957219928671171047656045718333753333201081263487594704015652256666517609131276951943326706814998312986442880105780040222898275053679867299529606852364008146563759436214715122703952853062118924288988578673629523855435447039521741601387312606740279431319187009388258503892695013482280709270016346298923463764536962469408008329522396337912597075507853288017978606385728031731376637902345914248172233563526143889766575011501195896803301206934608655199652201051725601854881870016223767962783448614069323186962054616839865634102258722003082123534608119116978858510974144530914880517413209529977234247126418955499335670889797843516811173269701124266478072289144158172170058027436109228769666460024676518776942773638176257307346480441232216734116646862579436484792517463431685313507664324678092937414866101763842977508792047135407893725728770395624491987041705014209767472443715360218851354843938158665704027052484247158563405027573197855266010063522766245080868652696701033448085444727360587333217001015659602666871277068263875317549527758833818799437637194264268394294152028110178420332313740496374360793709716016025741446465222550498799198857458840421759849924646878725715009057083172419529990585268317917087338913277667223972661829336659946045031402992138450343238200083130633535502440052517958462675785379083211078960116239980319816558332556653640586541156610434903731793085155409104037836577371366643295531460320799726425627431413593554865877739847314988733197652277539707821953382657715634982270009019772973735652986835756612579095390433959508208464608403883513643367891308048407279059342412470690352746052804908198666619124905026626319823012548652133983376231411923140170876953043236297201274258025177427713744042675336219594821253250026610516838138758362337965377356843447590506268539901309408265380139979067746112527830734778056287470928537011125974065558816539178486412879081281222825773986147363150406559308622984068941751289876731549276217748046673546519980971212975819169420603754588373729989869776284783413505832742993334238580227141137574232396158336021212115635511232982413636078832197634529841968004383062171378533140721762021871096776116621898371554621322797737446997788605781451604598548724421764773857754599877311934510777240314723679522899957904387294804556219674841814846736380027905208188812013352249461619658053965880002012474740979288303265403133118708869080601517534459014292583491460903732740245714952518259444880880818851318235708285881799008716962687420026764312233140315452307628668248906073259243590974746867509063087656977613308082374548157016477776958582035446252836625359602247626889565913650781861401644522434466173284122311185023659568773339287105121482423021663597503239308989176568573904795888044635584325923678062519144755387462619489775957317974195520913033294091034350975673707620042205668975891921595816359950324644444581990161404780658892021549388832922106671632312197769637117429011132294851387723034376126907003843483646405998759538814052771466109729290657890275958776510633926455391818545131485492568531609949064791153985569842510448419351858051835125793688915203476242990681248673955896407167303955578392568786032616002407877588048711182183976026437504427746637662154033677569758091472328769042694220235681040477953950780207569724373104757230054952903127595433356180167988606726619460206922988502249405894222673342388306613098068804407343475831095303847205026390718476648561502801809297514393759346232143636534735151570427674949999408568792174522063283498623426197687985007338395089431714656156537042324932284618713440762708146569505542089566691646795549955942443965412195366260640765470463871746592338124169819121836392516582760089406364245822692935413677999189114050808508660078607838433788078035136979874346288501165533200267581565753564571576288365988708218183958333920668908740128382368454046726771824777517988623209605047285482962079847969483702776467096565438563647223490440649103288541673534346816535851354884831438539782862218809387337282430845353605022731569094938028229982123328582739462059037197660583120853858916012044881188595082236836147345560860288864977588966362403291015086171869155861949454628475344897593375423399657314856625652822735935026684788257703744431630037173209641928488322494726093996423373830544655277722884659356482525328646222066150881155665422619502958765262888120310375211613738970168308106868070201017352551665735043443610938605426902041410944403396602792591980181988675592160649987159949298138864644373475895736188369785621768061787916321908685230415943318360486991964484571480648913183219982821376086288833654283541529337173401961031487676949314448037642152051634193142900499024736312203614499423450223236752951075279932749410708038651938262017436268605551863691567016009440850649855698665556210575604663969880416797062717451726379280792416012425338297754311371869404126278929569165110116030788352539098738719623400802704990472695130598275763113885343971559709986758620040736055548866474046640816411952238404626496881447203273108623399094616035945119772337024355276436738693456888293165355826434926391271333729504044063445831448669036595540877908661132169676560299095476213215388737285738004972743688161677762349660411694287783856203941127059859312944850963364559361319469658052465582307435296549645813927762573630459036269077365748291824735094157064696066417157357687452756922422734618089537080483812020397880192888112739026738849852858927798810801173023649735126213215656863460596939102663432774567603731861529885289108985811134006723934675188624941786361815183784197684787009338249356171263739486981293216945696329972072143487114568702612488994452421322618785297950072405440191628778621761740455752432820192828723351439266880321392827729219342631011185615261908061235417092587695612425659629846624885146489663681517105394965523331030899408755061844651325180185154415355391058573671769603913366320966890717389936815997897891545530304828295132305363372828969357225783226685887270407465087032049336754441959752812086809279387739494677550499684763743269211201297872487477996121679168362371620047038998901780165524878700627775042977873789692447724149050374155120173035106881707523076203002299094957386603771469279512581695197476298287765043653450666623693268494765381940248336042797849155215927313578595859576229239549320528314495148277476557175508609059643130401797542196284968006361790409340734622800399759879808423268016226579741492649201559392842574755186542512660509177093789828541462005640222676558162948188709711872363603590001323278775655506961432310455985831926926161591654290867873686815250096601492847655802591440963339478017971156779042181997252271499320073210311769002562064035772958277566933192880926534275793171545734587055781576305143499648224402862501463233720739689004249011234741345403248171278102987789292540127007948647485858916625445299030715390189123191261854084073796009130586338070718068926955566033142472702507558624471361973654606927668165914780609749546167941341127080027658038886484545337200051540889065702764152362831234672751403716193538457512697070537301094445531979465701812190845825260146008237049458489019298079361626821557609625971976076456048763664229379402490111384453698080760559969998025364317619120903789556968006695211979237801443277816161870440177924236444506800394646699400032765399602751263018097599539443635394805185560013784503078004923858771074419280471801441164107307680405305043815633003437772322147886808773380069528050388798331285988651871763171927239902716799240581972257606807021547480133987817869861555401564376448432643374426830266532162759178167772704523004064442183592473355597913704317674684669166811344099154121249191783821932534110460569622673646939198182584460312380365855875249025167261890418507214673859199578857601210879250090503373475767074759127881029789555723990463670460830874180567393561079385355022940392600093120117575308160619399203025833248535585072637266792372564314595865996867915218927399721260533577078598445480682642448232529442658479791611110749667840570619840361603542460525128148359953045007952160663982580928747569674210151407749707912000147369434231594392099137345584025158026682891889386790762156538563945965678224934282497873798232603310545345600568899154417204081512224601146974945363474969502147623744166763353723437192642367340754629517465007382776482630057299130645835145359744168679110926189332917764869997549950702200119851569275361670303004870709801455058646752380730319824501961709057858208776676075920343284725825975459865094592442261759956067305329136799401375202438005556384222770257781221892006356331034697264382723071442572859702771747947123897262563463400118642092977260226800080125548801659233697128380536274880650286568935848152158363273468492345583610895254102221223913585813398097546588251514748212799285558170492401930024376999106167834448471893919415314638072855407892802697378859727076035214218314222359868836009010336867574666811528698196353683505618114897782586077112995682865073790515778942146602255142038486158192145656558116548768738658828177036634985629485867962418160411632255098526160400151956994694380086620365155803503021311520766402394013192722110718344588748306445977841813737792590050821609664191914661850253143648599819021733915985456138919433579597142748915425651772060468106657964238131856660986578439668355822813994345080227453658109104125581716218623345696804515629408477829791677717698610922738414386444311384119473908956508912064971476574526231628094998962690103884201649816495206161712055278940565704537264352800318345290041266171239768586071858227336937478586709470235168044422445603881353365753039629114917667176403032147108196885302800431529355968903007916746777321515025539695011225409506764671762835029837263893300157157333645553305238043634294485062503736735065995610398324058260791586605631299384582255720698183803251487120172461157348913330780378013252197377741653188380389943126879431066478528423159421665623028119477979077229955950946492586001459608516384505872266225612436289353841525845750263957105653137368265215097262988678027008801196270932267601761411006782162880982394894925055901427908573509194919541969395746737919766729089131639758092739919121314700980071802325359366163102200000272514413074525256877463800707830899507132296735232932426888755249857369258117795452438558511747719280093755921463732453461927845542823841885349194464214733027560215202389902651636739108367277613979791230639298590177071959745687251655270442323883810421329898174739926647462003082203957601420159212066277823404662773294144114657310089154215044884990087869185092142223850327774215635437418691830396166032977803192329225925876736304144029379203141939085202045519345591710729062885681507750119337444695916763040559613354016125836390129353287168715823255241535831215474783634061626022023950862411896848961833151593511444042184604354526917242811184934449761229533699096084448562333152495711884885973147029650996476623670827829319820803551559006280068813592993493680035437107702693544881508819730138894359666058987389493762511987292635875832498507768517138267468038487907169274233670952303100107204263410157800238207487350024298008748223304519969287151952624844621951684553357324979317860416175535818087686697316633750960237572138162387545687218691270287003842213349228813338862217345678985889870305172505932337802840561169601331878149715341622945195654387920807172042900775317677101919056106716783909574362145577191839023308952350574681913934728311927661917987713960687358680291484972281651198207659633987400754262830682668954435511455121727388019711727694048164247234122871545337674599205008048387227962747919786800719369538436285587662801217999760196555619272914490573910772761039585805866051478943136795024861067124316660052669155679117322987411984718926517816922176359811026741217430701022209405616337887755952644580226801972844111843543548504677056097373822234217214898859048537463160664405503973633797288384959241004580321766996681294299624662294270204987383789659086701847429832026767230048135590659175705348784757911930240558200229618495501402029339575903572758237507202546673704063207584833784803077201463704617955744596747132281163642735668198503639763459724772119553483895980562914816439356362959386228509691565297857787448008561687070331844707862506761344548290920600524522638471871683535647841286422235515692813343971890620905505261707674457790210127681215380234402191204155554614811085116922545837037385095033017992884253838015465339253268829976338935409543985718333270000888178749984982852672190680599651708960943790367467213760104019262197448592503641718895932487669135080288241957741881903553072178800320613863517571360520316224539256722127794531019951763881657930024865079712675770701383112095001918557385638774629771408431603264806680575619001853546569525571062230140159499745782694677141570187045275785077103770692064202599949527258525665594371179435504521935002034448674443948126749421960720434647116500204871990907321600238879901308357451626639454117133900049254046349060603252843130957471207171273557005104647246287206799335738425325309939970069290245444896845140504830337548997991664915468815751732733748587803164696447112476233845245764114983422483991682215726945729703862241915339957217115563530958820401034016326116971972696048808581541743861456127624589906997346760366094766902049973258807483070722571539040503275191424974522995868709944629298052514294061380477692552536825950444353753794388979003107516149046021533307351097727704482286501035988770951186121919366081418706982127097453682312272202393109238731395649062890670144847849051067861435801958410934699694534737200770467503963981568061271915024712172778894311060354811492339863524911611769346482128769059095661096339704546032450198336896156516684286178780923092400190904725229219634773503751436642973703772973706126053236404713797375017807223992548659549990832510530875292173097152666731536721347138096605575560163195020749322780936505574390949344506393666725066324268047726260993530332565380345689210667976918203284605219524076560268261667922609341588312348753324469620221291840493754464776609537905498124052931749528154865019973713935195108424214354476330948530385185889359477821191767117079624146577044446108741805443251245276292519698982880387726753657514408300532589916250583644213917483095627434929285443706158652953956963045084564742371463975517463788798389022272820031669775093771039248006980147125961374266265567029191922463125548586946146737596380532231994671632839957813159006266654106092851204656700406327435535605099144657132816916783241857417125459142053754027702519159966500878221656543810127474758157519897845269164632764259748411881256469322268852791554839998920121745805775436188136868162488357228897962196967373903876946010153890851106123060357168276533332029296583153179511687892012639566044546886135084021723033912387343029586707865032061634126963381060209001391135573100082066232122305559019854262000346057530020907053205493125314224720681493499427484565839252677401469979240258999379222716286115993598958371981150461365827236255467330356035412918452471562119957989135636514041163383733274411056403058814996219632263685944320693897230455825840502435826665055057813711287208051599256674561876638082178596585913164749487905320168768921599080819779482459876913816737071117186645768598250315766366313046075989693932206832946859104425826492403668099968523570152747234459353533063967646254944748730445159563303723988867041749370168230285150413841047058917161531356446751027454169090985707464252249267138605130250475544647871602306024951603897855380278332579583991912595437523742581460415363924240006244532936838163852927106140905860773078462428380028991951957312411082228584131993038676994733707765690760543212988792899274548857395062190813058631178647348515268393935704298068002101226931093316388729908843100173280001842519815301249107407296506147874152254816123053250872967416805629953194331710904277351350572440832584586652655380493202734183799553576602382985038408856215516583361614787488061574445701500788376868905522451835596730161970580312314510825885184528859100983160758389139916428035681723568665819046588232253953648310183926389241321427539603337522236206982481837231825079551720155142012096372390378529335435963262717094079500192749505742564665704113757438481659987288903197462085131530022276972382561010640062500458681995623937998538150642745981592453854426762250370557819327627103126605944111198642296935623120442045332172214028282416626649684486123713903692057605856740527804342653586677114253931425814505438794883846728994584201263458149032148101752533446610832563503011066461300221332769162685304465234634647730470145171653447215376691388791986616628429166572346461781720635028044672440513337428949074052204756193915709747578709056368614790044629013529911646796485010051955746524070186997212587359085975232793463666254211333132962554088429930686869913510621313247707948361880059027765582418911247402157580466303678515179938255395112865718569477868794159566712289089590672040385513549930663362283899132302666335083039761567001085147884115449449209592081776993967186413721178719604679671410896390827143014340534781822537840557366423118836589695339011956069599114399248671706946173215901291402082217249058481393149180850001695762849737640405191453021641178581735518463134755263680874060194929247342765852007433618568515422077535971058655431912685128718726266708031977556238893266046168015350273559635428925393880123486455724762099615363582185886504358563754054523384162297213966550453957415900964069337712235484320463105899303396219238002385327913444747436175312019938235691920235872405835652612989186969627327847392552710049457799923484043606176477217039145216149691534241624074377916740088041038994971078287468213179031338919123512131288069387945995937838409862529045742402399666772625910250152039684812577241582493982224237359506638352401364246479057710331976659975343134761046220525981107343060432974228647211279574038798747011559085863842870891936004946918991292389567573310455822006799748528405843610248651522870427262501707886244325625347561638201284400671795683538825198931606761426398928665926447401643342672122800721360996836198003169008636690279309065756658668702169070679822708915041233949124477147372040953403088475891237919916256197587641307507519468506688159237263839382134782588304846527775724433043653745856715252996284057386273568276147178672162628443434032383838463301373402816434806954359179155589932623794654326396074257539914789017247021466351958629003708577499551491804349629756524143190860737377620885715933762899814906407514835619445559994569893971511359133574530824855869724760307136573379017511362058720612056022000204507230052779044361624973260071504261016233944884290857486724921551658178815230490384824663837943991239139467820687154685578467368204010988778022841121526354941839247012819773217058573582801506358636123338629207375718768278273806045050869811005234481252729295649725618306963935065993235305388582389503576079089983112733132250430793475051157115017292521436689993220520881824783656938696858341723743726298085726930703812688620125494883073722654502945991862766651917880005315659670590695523676858235597726166307190029856953078356933148516302271041969125576456863658908248173612720894653472074192580775470888030917372422015442846829110905440386233178080143443799897537625085221053713334560984417745731930368579661785693531892708546181657001311921450313341529444392017221528860696592260632590979809353309870928080069505302055858695262666487217096137100671493181834671589177420642531234204009714174640931039129666175308492307316176557830592797155518896517590303408929673067747011026047132234679280646478272739419924963732822676891776959915071138967851412528239808392043203471374185013703935850775256796384432568429188702758435447130979360882290342298772254793928322894132620793740540716387131173261486578188219772109763445626361160878747405249873114743769988904687074092210449066703180940848156401703453401177717698754388382129341660449617934634706985007016661558218532120190291565284039520140134288963718230454196274306111970524102654580004605822299369603851957077921165417342759372699686089205888774732349894550064556463362462708487795741043210675330136469301509820571208337619369824048205747532487237780868387424120351377131636999407847242918098463324069882501562498942688380764685616480179312098222767578553495612397464313114063810378117541216125723617568929947972789595933724643270879842337581270272752670073059837241773030410006243989075683417654542746873324192820227793790761157483854410602778612779681404247266755174274322298105020796113643818299547265770406137004374721379198835263610195944145332172436339775352612462944623853498661607475464672546856711436807319427498270678217278152218888931455155071175858332307476379415733912122317739369813403211487906788463125371346644870222866646959907031291609372320354086226775529076780450448636303033616185733252638683393587229904005780732936675333085045501806679961195860589975745560507473279119629726886708609381304965276123381054238794311547182607760149278982390110600429988492039125015312885980683066195748361653945966532445778806358730871322629656024533199628313157197997684466319316741457914276897520486199495520643579106235798378921202558746850497277996964535514446034982179043095136685599360539282267308534336275351981368311591965318223587400140845829901671240954413780319904565107240143555388408463012801588172340481985673722204371357650242870082794659739029388792082300950238519098495212570155165239867470189909113718691860524432896548998567458928897978651533251515494444517953593328065524548994385447678923927981612032495805525688065556768984011986579777787790608084116787055780449812367582973543799505983903053748660555862987577131665651847817885530701363255343301543692552704443669681659181290553039394780984796279307805159405367781254724983406751038719066211290735600915924838623666444636322042978055573634645494869670237985186313637573106176323913315980693374486115328697547259818297806639329207176267148703238588559569020488483984299015651083527147655051202466430549105913942767726655893699658476689326167694177152379571544854749101806304838169179259217995627774518113404449739183495647951266088160481203738399072340689673293049414378265842639924094677844441781225875793849215103708975724813971846876139483276675698026104149766179881572200688013081611801005802615053565900295602079773973835927994398119059827714517092576239396499509684627211508850404592585188479606106926222459195988607863986961716180606270666451652695611765053076881418583881455989013879645746623504924159162797704180300210563496189442733911744352586551504321938717866407028700139242721425982555186456738375236034781488220687561840275378623738710354954386665899726768309859811525416344180702049233144402840906617089529411297064585361796989231049123424938755060999696975985515675159659442503694194995313165308680670671756951234475454305168080834793697693165913070280292639105387318288458773681380414830521693384475423754495681675815567882481573279416814119975855238958365392003350329301815289493890919197172008527278505423685129904600178036867805721983843555419142622527276668198739522612450812734021416572988453946625487323750465043879546439177821936468673216119047807552683923769153961379672946231041335441140122315712448121032399001776913511221502376643137059555341282512255302681198336570184545438872323751675754921805078240635475012203767172496882439513247663393302157214694933519253196609901946662608272734539353968936933403095091666554841385624555493139959971008819316677638341715690163673712887764385879589970763603888629080832475766570712580388760158626624629943646550637655873994929925598244797845350169483791545764893476328605458001136172290880756681220393832413575909211337386686201229433494377372788420275297127749406431284970696469792021977337523333910948062407426686089848058540756241818481445833597455397689893272633737406773745406874142823143889312372436458174651101060677198604108441896561831802986252408193273976638669465820339101701834118326400342126946135595515304331408850973160648940035008520892707195372421048071601099686357581429165048843101295516400641071583101195383882368011539853983271072569092643793195898607670965074448649049809417814833453955992940589274789533516277011076026869648457362628426908071588247985244174098166079431306230237319104107967951168331148755053804992116646451258520724232950778814535136683353824135745629635709138068042782295318122908402230705723741104710240705764284103215525758155483648029307444251387257134918029005615728026491268821017061113605728422275100623513213651906864073171676426371797431835954524605033748812516462701209172438179072704974436051361274225275771843152970224204368156078174165217807890394084748581074126131458212041248197901726023316960675820129904924604174656258641892793341842164735295566263211600699139050920771261383577588371428183925479822529058641168397382878035777351780312786885109003850787092176060285728742125432057845479606515156478051468822339852949643479075172310691040442714656743885471462142906480109869031192981576679460246310010262844036359285011053241199043322191375573548431730159745710350007197796142292461940070594571719001342886963741977837222196262822034738632330875177006446720331774902363858828945780953082049933863666511841644637044761181992365822428015637869083076032752089973271552979051503889095282126255830559697654446479394031629428853066241642864923069160882460324080053333947331757702929758522550903972474250614222477250899565911633438596807227436276339415629242482224259116569799104952521788175417134561624334063808818121525965737030491233785379464393888073679759122737961485257588784173286173918564366871472489728740023585659410401906339257680928624791796154338186433077083998927732403809685098979421149743341729040424731373155543095155200320388025028799011424045409138110801204440488872634516790077721029045133005455228806149855545926974180666285457130942348234641047934555776255887476957596659739722577806061665557190618998414132432757629301353096312291901273849473601482736467433729076571828399544830855900020618890291035531415572864457217393949463575378833427928191451381915929313364261624561088778574315325893328013393873078190223500665932516952844790798798337342286027458799883316157699080328558984652665576200490426301489389218335244987791204822933478173122724209341253991256396963779858207140454510660344153357892978749280164703166556384662602432800529586980439364314635086509366433853708930174778376447277507019818055358381315649867000546194532872414481939283939249054610259828178407079245832965980654691215679060083537644284916906588225060460963882395734393445636931980620165776119896672702429199134095467710833346229257728414618789143249730428897659504659820752847129566264529340495163716895226412439620396528751208379991661100308482909182985765025961528322833435564675863461434064006684909246335229220960197875877874423955697653658399014908158937028592249659954801700680842755228763922295182056772139856170403867160525732641990061303872081444488219241642733028634431932983768697488869399186635045507690311019378655215811533898108592299256817078329087005754540628623211232967412082795161552655487294257045053333061658565513482181149260470505229098943746448039951330219832820562582463536879928316931764839902628224781712845835969574363167375822407505864712364765012381459441527452029284145439120953961966995815879070750470233418257819930075695729403737255085204370561633009520765003956471588990477697233404253968330375412316261355256388688508082385745702537953273972070992506492848067330938989777725700336125455648413737474113668554865215940413528299577877594496689645536796172088692291279321372748873992702608127899853613313744480536713351645769645782122867277275707606833388412158554643584839639802565448635157061193774320330623934694370651616571452821618979375312730027270169830087117300380253803030121179339868905820689163514874230738838368075928354932849791071617862435874355742044866133742066738849435084355870277201755256078587765142099802075171396691186947224192079303883072365675633608506955414119653252950247821092055375314998137550519402422824928530914428093127117434601100896551782834085183567184056608856653480036730331104108629148761203384157351118411884824672192324107409050741539067370489973781743971063462643272771423021916057444072860452230903226294507879571089206387994256277101287217542823105014674564478191955544906423908893786526179878211556869306952561835029159838751738257123286394406704961437113279430641425630846052656503663568097366023482951861554068247827732559076582510507525847674665157596618526904002136910217579918917412256752451318312865159825507795331618730186001913662449974706936782766867399386487250034968267508838834323332380135087274522546889066185564975041734300365710764898220357163786019535837065855545125855017565690368746360664322016300631633872096285982124781977352059430451298178395495033310367016467980399528487197561187553600134242284143260159196557915131249188031598899481003401173655417171919206401903089542055595458199998167088187015488672167814959478294092832219884009609970033036343826692187135874051350558645501237426905964935739816508975227067283665577786650599594809964255658914186575776546417921261162545755966118499647282255805583571242438809854106436303762718615752019932549938835696826979817405088913561820067935145884375644396449226017661537801907417787716198921303681125894838521772515280260545587183003371332172031170600933341931325036892965155715945368272306039575574806505383201597336979861741584170535810466483748281048146772256322197406786135067643083214085478527905190742923453657293910422574159203434906454024891486405846728008618353898532827854737923026834459590176406523718385292854620550042543214693903526759748610081888534750715875679186164538434249508573145655512510602485781475867493584233680010980235324836672293520404985767104434131555909673691517549050313642070343908189090315612732585531181203470305009349390139393009312219358454673613323194470727377759823288381123950794834746746043152317250336056706312742820820634468280060720281444516327470308879951019058139242016896208495086163014988404619508578165637878281124639674780701578382741748333708964852273057803546312696387179297539395121991705667270417778056641651453616307012263291872304741307568605029098982856153889675401983328771319233748155488286316922102725747438537629551818099691391011862020093895210621544385228758706430896653140994936840335722068041307431587487455085885402461485007490759332125198120917088420414537684651581674949990832898728479935891377150776237137363393324601846582103801360655141911838900080724355966145873798929995646480867720102302929238023432265692692853800123119974104144562710920394321092715790831406768981112046919872994769419196743302418012060041022011526893927135872115614121987942060957108035430514039432169870414616572278651200605508847797748266350316280753975859462836109484196571976705645233068930619673984710686766399476588322651456958437191231563977435005899944324784168232310085753627659399288976264602480278855100016563938262563093670209708870098992890880822826303997756891187710934846739139708115379862353624288516989135601807613090874746974590672982135595152231531970543119909560083513912593656162058316521204648564520655593189716303735703443200324235560444794650396127204469964473065277635609551214888581223371736468029900323319361737380276033468985441202016098313762160946795076717717270172154618525190472795494229768001215786352684203236947372634478520586256998538066557156295754902262453588422016681016717554273959039761154934719259993311228604701786878817089405764894863249266428717149516476870075642487139623684600026344928488834569624953333671764015237481457969689971377229263874173541943556305595691941285384560982193674533615785553246628839325558001303001491509639758488305997111312198874791517212753991675078126102643458732872281475050424097334121930619737336789244282706402553026965061696823682583781641182736932429894663642900951361522634840736868754499281592500985367619698717469986296421225873123812301820316260337666292066497454535672185202629111300657868714232657921005464227218907362430474333792111525680909192224848751832863527243773491657078698757415619947648648791120515336984287493542502507467005610056763345418873745056497134890593280716569599184837594143208349459849360164805471841825440069805160666128236184843346969616224057273858390493337478116277168719579147981992850628366644801986410861643434793677484955497595618721454578915421183924106352000729258716304884474559953016788380585724333174865413456523963062687648290829557625447107931205441007065161322649056954507260948368478021792176306947397696662838145746914543454226219060286748561747965829249138884180100276280223156492882109177682407695372732329227452896573880556486830115072116949319490848415221331875988446386792223063287381885972345262799144026136688925717402045634643250982446852857787436400545348244774911893886171233649618037026932050286238291275212856885311282174490349803429898294517018466485892462561675375116352393900661499656289114371351462511241033469500857936799052360120232603318206789515597059112180307981276336255152800578419420505023079562586782268881742333563045412060700832435947787989589391079481587860562225849119280981107449436575581289460933760656707830922234801700365580712903964174389259979601697300038803776761347420971071412748976033826228688291071511290662101053204755261550516014033078054233734516131820450814435776752207954056596734378102382229725968767154537716444829064284235607865722259863864667989108312657323285810826133095367062818163030909814477867629836366804533512743838323258815952024151360611941263307450865911118553089635627175391745578720327388432456045415369175663291270851159654484849427885440662264998194038224711728311857007875930616604133588545231582391413261855886702563234642028729263296121121371556400184468648739630688217048702702725035881210884707483350975711465291697789027754342813806178725411408209645656061074178193510125415669733599029861825147625024626216138444358024177573141411161237818512529773222458008149856643930047612506758184170799774286956144169701235110566519233239716661311656151979636917474650199085543616379445936022309655167129873162697272142645131690338056439553884002466664875159571684303970220897596970815854036128775915903029641616221998325492540509056745253447497600240278599555236896638567702391153962376003679433632810423815606159058314759125595491041060404028009808962128863541928463293565915515550551887725254245893728273350867674307978288682053929131005953850884939288686905639656877050966934058594660795661246239609904689041430593334754721093749932185605583040422325139217538691185817250096543961037406899189196227562620148932853791925004500620854724027211220199908537045200538742836375701813089094802961091983029812393320875430744122061545312609265134697700941573776331344891193321348950726440228287253573796814714779427836565831663174826541336928701214140890915980409442241104197221806055702644113161010651048759833681946450285309719104721318855793266532472666671407645561958305766268427654941497838929905342043805957200656371695428098570069697714052648769105190671345947421563945617269224313172098483417367034037400542137425113283213202927890240800561130690070953278122904257346792393153351509310396852653674130181898961356707115110016372496303780310431540749975647572499583641375405384204153280672336589108804130821936756781341162212527760993913759946655433701423763799729717640688010103070450663903928968620852566797573497869648955629610925741314583244065954329981454661315841030329704037275872117082475843710394930126401216589590965467716227687525338121456604437471430988168627070436145502176645900532889183588880389086540704990517977404458803771968729631200528217786192113042906508309242203371069809966017178444269969716595395525425665848266293728391087583780859197554642032803692285974585543512663189271912067599995237330987334394628298377974777637074090509646193842897862362558822554105527610042881603866155580487980296468770088475285519884429350363631016391818482128700239917162325859905579523952121341021944994261352892240075162125280344304677084334650827924456434476636270642782169402335101985900340090373111961518392931684583570374059329704266428698605928137811185246277729925840251232747465416555420271059935184831102029774902908376309298375478470359112871466624208817930505281570494878559005035337750796131230657437387451465749419696616950203267250652525427502542637529317953042297115901233387322186747724449797804941763420498951173050579319780005464456019197008823037516660855765474777416100384260084713400025264166885583522161305294521162436317092637653457157437899950542631841908924776774656313548671767813274993117130364036112657400602724800981820459747261071941735483212603300722681619657284390355082878751899646765980354492042576407126571749250734150410247951920844723441591918207757981454828634588928662341639550360885848172008129012511302221351967722005710096804348473649589491950285626115731784846984049670310033117301848296319001943688166429719778331248881956475405698982163140285468448385122368356146233081694189681974607899181707332386490872693189094130145376614984202101207132461763214879256198729082113204734748362070967115381141814810715936656274732734968909213489752922286435336952351331687836392049318581080512171001941938085891743650669946745589289247782646817353014639390233246816767906750030700491356939729162407964812781179686737653872543570624659217109495787503545561765225888940756663158778646673839695349360953079891078665422250612371708708346285949571058394939852504213261701786075688102546218677159506278220710783899361491046177855469532991321006444283722305109971683052816028276090277453774572901281155219047977222352276991261152592525358115766871661990017791723870991620653139684866601057285507908407916561637935541336397370638168801838642280342517145368090270489701568782628447928982737559177904622744070282700322403217795661375243725630077067088312589444827635538618233290677935535750204922294466080191714927611642215348797490863948029682694730974647560389624342086411779884113146891964197909607996217084580329164687206186909029040110242890791159037952126315408912436479193661096015660237028635354224073925291383541330264142224467051089702421614983534432284268430306537296478319016469719193230687433305189109831273699575247590174727002404774665201413989271587253097211945015214136188550906747047045412618574459257376528867417433621946826019584001979169697294218026055574150997707459349227247008945623680996565545633999162323093917091981987337683926144449849309045689590384324317220655411419536067249787242316192743375646924489742685762654217540058023830922386802680449656452642643872737602489370508189022948692584363089967460446640006459663654283135634676973116276772653314189030520223157860751329763846379492363522435030376718837369109029513908493350487587917689607387804140874729990121666131730030092499419378571637143546095282365653098334199939083036904274690868642103868054165370614089325709199752466330865469993424328586775066153331460045555670628028156233446499344568677894244871054504622990880631905005679457547221648616817529907698258708124302601384869544516117374272755349155744463528505655019542421626961082887911952200827378136232918887211315352949296471318265488544021128764874637211378287645940604804997429385989328433983685269229621969883124789854610329870758923312504834614335219873081959066447168996503080589924718185736110636234708241040819259088949623593847206972894770356049744713263076076330389958983979886952137890020042037702645485260900662916027025361405845005910914870924682692260606773857138563047526946853183984433336342612810332003086131061587495297407500615029631283154533986826944627054524962023286096674239903750000760809248360953948247849013915273476890263515165677014897209319925759407886027412138666283309417342322911107973767578302144712593184863422480168530874862071684132713653868794435985015770060381831619074539185516290948899881381228578071853143070199528782323307621630460490380389354473765731988838953866724430538978250145515707137332666681125618396138859826790736549588126672493637365889025233307769219516592910980421557127639460829831913981839223302528331589893381411658553459391995527155652964528531027985033261070315282448538786861170984462075153308744160364364504143737251393398766452582379931160572069489038524992226029161214658409043547319499057496500110052504629390308665742173031893776010913637183431744104516042030421372408276499566060173353390456771925321495755247566573432418276013509170208490113230664562064089311249241176011208548858491923081528706608747050954359878631963867215938697019384196165672084371036585003853092265031087883899180229660827574456163517339676955625427000711619049223530311471528735720866441160486179727893908280144248345029280715007084334222312368056324026655415210116764532233772123746509573174694019418149015784440646903372454361716752853725991946028442951429027515305276524811697200073271405180159590906147412757022436359972447207889805909378531532705928842273911356566316200020886396526389060546675632811590590062202108845691975137732159650996024872105714325556701110261376264385285417858630300576770195825529144548853133381225186882539671753259689222989744528484544961060802253597372543602562858586139980205788382841571269789045631628256360814400632709593024378244350239751677874945301452021511684129245541074394346348017005819240045736794186406548653655047181878506210122249330373800411731580853978471330343870098050120718685556697317497354173913492205919902680830336326578533930986809230611735629868115947124064840614968352530515707988179105899165390727317884568390430701811115378595491225088114016381911983332310866436135047595308339901186634846596445509551905500594084503751152330734882711329611027275075656276650760147694074621456564641422040086733473610662910322377072991516046725643356671635434331980462151069736008589278571617727853479197797400851521814321014926049517697732087391523710071471539496532007321165321589137767026492118999105306307943367521653780396849078886363297737049287238800484995485369594332809267353448584747236690391721505746740984960453131493661361394010867924701049617040414772139254305096400885900325389867419275142655435005620029110571275080714144603435745568915626657190889642503096718823173773094816381573065455195415373830301497591399674528266720122140434826232718098683093541856597260649678795606874103072640291195044499765230581103357644980449460291038980252460307581149649376181346808736353135196618591434390882577741795884381659253572042051544687597168434786697393766539538537897425613981915416306385636657832811390820684513935230706389052243540666781949466494992208967452831339939636750912155634977622219647569275899391848869642742227370492280823645219973095563806341124477462624696702043104218958374942896009057395329186232009294554932120827012925525455437178200567874188561537098316103756403711314034464960093144705149930818753520620009463665797454176108391119870880771817816015071656385828911170107294638270451561603099681454972697075550288702114060243770814120365091445587355451898097681482300757747530778251897538230332556393922884938791570078773342173490178176118442447932443396278405281812764261885975154951079407032270818160391867919914514847930646406873857622459495973444074545074269402353922209089430317559014914174638145529991354159143765333754730233295179144089072382273905532348285075744348805188246497034789308796800937509967765542315905717585103796163184741412969340167416386957941114906255744015407072022864935728021461522052197109450341526309110417367662164133233379085236981614341374173889787429659973524300058370840327894471536330686870427626459586863348664811081566750745206970105669433074414666954021943745476139834700812393339681832873003536377295763707491625734812015286541137709718223574978107723141179286450807506522534098138048224081788092506127034467389807626466667469852655963712914474420929368841882009698623368017953445378549898817525848377220916668608899777258318020172530749861752204954875951105577500684971923209453366806419176631849578284614685673476128492742246344271434050268582330191509654291382301721518288594078166396303084722703293588578953459240898565319590435980726358347600342707123949654321040905733680820781015405425586227807091434080585327226040650324495511444407830841384586362137389188960784051621622538934137113396142579265144103902712108436238478162293249045939990611112723269291729977267475563922912210428604685314529896270098142151937576374137328147441401997970407522657417953944807364407594748604361321816894544090670079397376452382015603493816411619551420709366192228166812636507448466413296171938314285167945679747018177651398997480279847925039452289986033324396180741414564511351132876890278231851416617736889254930838155526374808370519320345870883131035587267829531760633533607427218976199621217384636959422816814729067547090527066091899063862792590250206610260742633409490649915752462159968964966946148771085587309647759583237054596701645413216396228583450966876408886586847976157182940396398356701755419467102149489603442245634573187243103869596931032115692033648372808373067799139385134115794618014794273342630300208487732167359060812729100574941554496718903135470408577904067397042005717535132541601235253289338978693042209047558505184048560273247200524525954380031766331260309210402442687358012003133331853067900340383351423237251108708828162351168720425898042070969185531111489927544981331461169951497456970114302935647016958157291153633601743599092529916252403699817346200659172702187378926252719301651336078019315115262695198003652938335207026026689986757124610126889186820156032549632120747054550198638011172545303402734648795284859783781497086450648917445069382779217452114120351149468818484973222425284518800115631444330260317564302841456939579934696340193375839423700409519947843050301152360629240004925667482439236160250470068226518725483768957945368621731325585404460423493992318465624869023685656001313936223534136780229671521863580408795519193743254050912140028593860213909641113947222477339527708342881823288940747372852107768414817028163056407132402640266090100496723934042312697828590429982051621485570922009109160940167121417335633249544546322894871002985662285806688190565423095002700790964145028601466870080616876220555669090527079783919450450330196955611564105364215162266456481080502445772631536648728780176538669411556846494142230202517088143339935465120166250495962069159007171387424030932595873075561873173885287689942011768378729646802181738316530418947812140936824695116226720386362661226031266981574594024376558439451900514088068233599598965741366293433766491033656162595466719317002902029318310866589481126381075360194743943459295890045648274300065742202095593744585849076538944499539089991045189463493757393672125199202123320155411938334173265634292837709780221453416313763996090676668656838482617860646133418142957581230100700872765767836596056279562222274686161048565210300907380802636790493471401976098091869538384171829811705296944904430676536725764908630904856273520519580738288510223043271189389024622612287335320784689283280440364895730984377452703387756321256028470514422959568599413862302269961172242095875563792955294086001932385166000220309707396477793092643205454263709192441135846095304377136624947649547056497693864818713202462728976032034452318283189100527668039113709858863396673872212454034967113493705197754117034635062379286674882217821483991129840397654110807020893008798925745164283670110996897711375021620138102891175734772561163182381763738526902773160578788954366980519037451852624320453573197868603529588311291154820669460521954911363838414859460819927644195729312064563594826954631558402419984962664690166607844694643951225244904128288427405283958140676584665974420758480358764097101094638311071033976411421032633377978464970552276876149304390224397712908718115962498337854763537337041424595338110745716125546190401425692333739033185912083060909825683462853511256012049060828772354093845797080667047381791957224487466679569426640595729278383071827604273920781417585884965781195747464591953109557172562679554189084451808807742596248945450159190841861396597947174442815820241187174595619776799322568661322148817172915221568731129105138099106661326066381638029078570993677641994753262597497503311693339173636625549784681787125106095848766983079303882089591139755108505853330378843099699739483749208340555860472392887564146780941182320541145468277398237458270951283529333475884757417966043443045104601775213420363268870063648065519256018776753196156743625385229372170066533622184454019905913928435079196463126999208047061857482161640345432525389224293314933957917802545453386017545917695788233677443116800617650956227142084505740146615555708869516114764358621928247205531632875021020125103764651138873407018768679311090560897923593534670358096536084463418834586945384933874887796802930698681958364321425822286621743609458585785968656112354995850470917703695886826990972196013065838494388768518963154570550984676499254799793460316407337591997304570623096449781567592983051599191713720769495528457915926642280595080117954445815527377382221714966716669165488735799843644682184142359338802550913277911664535102354510286723822211250445464990169739506906115915356803532834048881501000744566430043546070993994692943013773187386132932104390711557542054064548604514284607351919016381843444416643313069397068919866491354773222345204925237038901436463023602315802803610314178811597428124914919119736479608883679515507723766201474754871260233775443055787173514411284548418981913420388863580479580241109378905187438628652098131624091316432267383078491590319805106727379401350407412803047142090169063512613920806511403849867745335846521901247512891844469861283787651413486868610995162457214052249970297637742408112548598068903711496107889918242325131837064751665085339319931917901488924292503273830763353534339856142200294887742549795752938994601219858670779258091875228170394132261912300860984341806456729122753771635520976181473694842081650957692854943781215297552623457352800576323192604333140870706269833809505947490735748040860353955999327118958469044522217534687536860079167780651827798049896709184672018358908777045182582194405133233174527002719574295221715218104447000355466264145715593294545416779132191945573906369484244081204288776313162428114773790361703495345143854243967624640487564155096086322751487294738034934866266255021011496237480246668746608926710661556131581296097672298361222015661386393432232552236224105055992897538809271471500070555433579491379187067399633702431869060169378317937961262640774376916737190458013613821418942186135410522363852200290152251963967320521909527032810323612105910807677385639306954696617228512904079232186396076941266611766571596351325789663164813429715040394618564607845020528366779753679634975395040730411888884673298388430449225041091945857122218880400366793244036739630143863200506054793716068417460254102118175221818854383360129416175486349570191497744873810496346861293270644646178688762192053873004379568597300011175331334275011644418381191256399490700770030535038867964031815667328160462185257096688618082756120515614171161499280696389203259875578493870985118628107700681615210145880020814443512284339917427442169965731890676356775874864753885803213593435183275879295866811801595440322201708211861669752345481569176631699642762911059568718139425419562702900169612407242892094746225981552738553763924442457346875914432194556421698266643837404766067270958122447322726983656811158919101817483532877661943041601312315917829041511177135532563394843365281005322481636627461794934231416637800205740048277012866543702522701804274555874968316255594014675566424490346799655856833220095158058554832992111244378861402855077010588833985337871332581054407784945839206561474056977774485775694714143476360636390623852050916197660653346387715602946763117077239494031809154234314105763721869408797529528503124768626487882804949886619527575243080750332878080388687705534958569905311850508499615280208584271790435172392921225264680429245300833521394139272095160035170431496844830578005242146936737400802624851975938567386299202833586392710714197789704323667477185180888822688354102163598285412644144218252378436717173820965231211332752419552141604556731263315414146069758127701751130758657557682142079615263636581650430343313639827743435026071643280244602491537692982178288286941339726651286586899310064828400125362684772585569700689552239188272151623961083592971360468839153493958836686129200556069280103448711541576229087641339940378738264531928355180393746593185129446182746464124194982240920651774664456797241789690474557550098983595945624994050329237271719615624944968045664222469681940699887464326589035274940713414736552410289088334372960661824427263878155000891868069057790038413259531856854975647508602930224963343655199131794024644527636976805944159218541329495966384566258420223938828450819530573415182798906126856851999916205669706719682516516720397674922642501493226682184182670123167826898821311457214579392855073202129825356706318552711924320079613759974614577981502088477155333689696992142088946890545474155279376740953084675314856836871716356093652532572661581792310488714086403778451479727173987065132092679054532210415557362702796089495731629862071579532687380181749306395480631029941936341067656361547034371537659534706071826293844728612343576578613571782511280751326424492442096852157100146299694731189163404163904959911721784238979159191979929678409809710223091429420804517671127182309976094771022763155349812580570538031428231310626819216341111395713911085937633440811719611236527194011296921369121780925248764968579432632208035576609039336824794816805403298939259168606072524363971252867471817430171458829296330880687039296490939494275020002810992391083334873994685669635698301816697210321119314781904791803484900655521684897880987727148336976005671716586701860139573074356390153249917230498427764829449639863866037364941250672701747782342847511157647873888049073543206262742809426947999614383741822894901650787155662884935742945713661071391798298798227592838081178839540452934807378001800047769349050445721775765774647426217417646144344425672141752606281987480282829367080778770221419176008101496858674352656993462914400134654815349284538953305408100802161100434227470355317124401685295927923163954094789535592105449486064687251677372480266065861113658918755210048450207344916339043799535770722187626979166146756682066045250623334940941167515156504752147658954801555141771222184602726077359791427567956634212593223580972437891201565811000822797129865808865275324554879231368131275584185609420152054332273588208485600178142355325718273687206284306667710783381779755922926468821894900037314911123316641837772024296573187375408481165850664330220289433841835966445965942162213596642691960607357255067445445501033908809215511666112694388740887871017173632824703768275986719074077976356516470233502200559195290952210853183267643716527511627104922315050867652572043812616250182059581702891037212814920102239333611227357651186276379150673920680082014814259315417463213534787905670646512698208669821624707421720138997946148398548725110228081355882372762921119023616947735756059368894437424445248004153469058785265735620772349231137532854406367470905183065659680825784644875933271868518921119275689676301589640270906655865675362884522280052739870680194871827368595567412473579929749996735937934241057634316159800859435873214689908355167611770051320718150876673150469295532928666224223546231342868131373734926466118683030256466387722238035263580189766795317849800586034531873077479117047785935093238621142764664288120472045981262250762754551400119546043691248558995220054311954776982626670013756583807212030750931494460469813228407223235875683132121612573482375907407842286306608806954725886973013042452380797730220521165782096488927915309029566497211174750117424926892016747201896372809215145133448018760388598890742338506490021468573272636889957172086409151885265365626972205604952212149840532483781169450314075232499386029233943989419187432561794218826496877109273254597963236258281854816886684389335757483177626694737079518943920781885348018560630442020759995248521709107828661970735906712465820255475170515495501433083773513336093850749065680831534336354389742124869398405602308913985033056854898644583312535332524326499137387203650107299993809500432559730753862605349934298300416
 
Bignum  259637056783100077612659649572688282774473437634845604635736548677546105245882050629129779494721489739558996237545975050957067545185957820675787609531508697262806961751931496377866583367890040412170536419385921982874094559407848309448774434742700361445386940083276493414672790976078222094991195175244539354863749247254884395485669955528784434885693168878773759331780159512055743163507482583236827832545266076497186559064268597975649162378289128290422017503430628960418712739822916011119310354124459651608613929243423890299162642948712892055641096585385018427120791498793114971081041311603281008177219949101127953118725921961290961038427464944808656508197111004915397231881698636846938820131268958361752403444922537305195717730684493889502154317681354879663705446721574586029462092766618931866792011781786607610491204207002430973613235296649269903040374822281042111654801223263781804697162402153467702241016472041994122490120877571910049055020635377338334828251648836402107699116140996292878064235450552928261971134809254109385976696306526539357852019370636270464627104738014131386500398479258499538313901517538042451382594905705581849613578999544998344655544969163657518927631715912620766366048513220360574101543434626865111002329740622102808365780190981564759126409139205580235272340319936688050909368792415367895080496814229597210819456192688593950351073920329908760369268602187854852605828870789773762221561145804328365644145288539672791744688072608893425207048485459212536493910384797840349382884276162090514351150450273835533838351250948551379429112272247480728897317232252704520000659283992254674724750859291330619954921196246469484222143068982263575175457606738932743566050797075126828845513588542812260425451444823826654517693427001641732763131032494906042893819876861614839604853130100450574013576700906993112115678281065698232858608452213039886155969025215412752073224790893769301783629003671049096327361360022456362485153705405824421483306964427118838123126539240299643167751396426387965382959466092247700230714324458401742263513781526849027184804605822038357190553500238209483962673401998123402570932153451898621853395376342062556853946342293985607051544395042188272862604444191155147593216048019343942119574798884229865779876050233071913387270911798653095650624312153007525316691602462902992570236443612764603865477209999012809384082033869070097875410955785023154928604374083002064216927004276323006052646446644667377096116932130271270940262811239824353335097747555513115646865036428505117494337785033401456332912204104848514141680405665446186097088499964110336628085690053687304195513172883468444172381575552408334370450623031076551188500719991865978397806293427844200746797865025144901070980301895847157947148530050870566224478840798369092572851753734637111683736282868429024636269488269573074361836266537117145075632004497900814454059338862674053436575241040180573801677502149621886644865143361815487354239944540364043436910109038691075908754140025547547960489610490435060419717096940907710597060729807711889848178845974810513143557584096849442937850568159399686733155715197615687647900370057717634270179843916476030026492649843177701411828686772563723891721410357118233392944427465203133014338127699058915514155432794234888606385750766433361145802652477162778524253496897985291823998251152582561000982205723549623774747207866626585159810782205521647181254627312799696197902134933144697342374393237865755346030805774743459621545661837619869662629836492679306089778230547998956387879233636126175572953920821630072597247092600670385420634436096412518396931629610824179436688357347408675585001718501631093292825800720432508461992264489790436140277279011655207558483543980620138331870759166282820647174370710785518074819590441149717414869391173923341990236234602953153450286812097910463525439268724253388596305784779946070081206970876214510929091827610835178848118927335305395158069593816854313851612478437130039017397936279832734959740493669556347966908654018629360621935681360524030376932691982039886584338086981875156577167582388977146127315779217886244077187610266746926404225609558276545170107119175321973704158160727265784997282498195514325303632848698241289984852965841773799599665879652408561908777396111569293696711729630303557402624237431961414621635868567326365542321128839148488458520539959827443773146204520720033909331163164046030901007645562548322822256975568241789423828780010970220177057040106188871493208280610750116885575745407875617136148458421893163364718080048407999813311958423814321195930893560116541487178119246141851170018752435942584763509707296959579812835013098228176044281658386771668003547597000073265118409579861671080299646899683396422088763125245380125023801922554594022441527587067650397772317756873498606319337898505046969149472990137230303012043113276711597435678625240211526251972520556024302987847410800542665920306249325747247892705376347703885595174430313350842108964498308267529652268051537762755928237525481742686705725944781309004932990806716215848201542267675347892709505737542650708450588586269975376764422936875843604582162002729350841538491694464558566548121369267692578268648740906719466795163798562314469591089301776707361468449718528308368511874524900617093557847811785077934710185652373668388625980250643630106791965789483266475421433959153987907075922668896773176307294514313095785132053924899939336488027896478789109630179094957372779827621370694954864631625702126372140529930728492494475497364564308124159675783237481441039411386011265761831060692597200021260866842799897111082936334805267008763359740167230270461525708807515006874496065609891841334784327750765245376101920416672605302182077793905625989592188850690473726017821479832534652389967693877272871475049815776856099468449615728740643268165162108149470774504555187547031988868252106568312747471216052819576366933653705658709592062753366883568602291978328743229727484533640476436410874563962341863279889504184821485658566605668558472439983529664347978636320916717420040276480218976133561263354852304835214805728769927646087388100382081823501818936634477756688378600766053150237391839359733126317699039407756487731633927432506499046320418483335790732615136022311249452724403237545476409777458792443911350360917221001316316644910706299346973601411948349057964338325092335424891343910631961436105831253463313995623932385437369467303234384970714011653582498640511349320156880364099533485713451882693211067098065473926320973381486892234826541777018198670164978481322589954310112373371734244882500760417840897209868844307255508755671065202923459183499581761325432142320727107288155743549076046770085161433649123880871530640931647173801531902771951849488163143581677529081321211123798829535732681938164132600675115709409671677426037566775164404406932167743510831704209027966448029459034264761288841434073672596468394119106466144797127881931372127593115229157248403137029423975190163334613784168094225537424526010881106504521549083339475279379736712044633685287786523463798786899071288790317010314146005939850143122417433676785884680029464237152098134240704551088110618991217207342037593840960271575141531471470697764582290251694048424039712366051604828510870970729378932462811280919320631595868900976624362241671024361450904935507916580082807433472539816486376501803419204706810556025827839795002262834470939947004093474540920616042126156382966515678597795500462843851629665209082333084819758905282164657875432911884165371469954977600996397974858545053487597159476446090342487559593999960935158624380040262554125774027655945097770942492396052684258751066350976287238452188434125012302350807623679527466852602077444174438472224037776083404855312792518811126617198495019534382650448105708505342929892177109921894591339784215531114546636676854542758286241184641211806155663138091936920367041333569679251164887724331518942382645449709521797170337180063854163880870432416211321083440499333965715683162078558779866278337248019553697122570580799541712132921893523885766174645963666963040560018233098417799382145894866449533848197389954268787966430981206944439373790358869654661492429141564167553456533059187201001866668769647020973181304300662327308297622817089584089759691473912028554986012007342044729736614690975277867687122457533633309328013606210828667732196981402399454189991422170484297698613477693243663844907608665360739273394705028544596746946531623691450594922897912031604413746440002347072111219879047002915295963729954100276755656320938581262541769331542843879615202369097976866724886698326712753432189432425577627330265305684310703671436445914913275527876747230125290369705175784270766141494659872548942587726399661373615224000555861588504608263378705122334648053854491528557615014319866963988437499897633118289641381385981703325350667976006258674587453086309824670047133814742948812537079693925512081253403962247454061125251090180445965235203479509968995168907315875681051868893603600516232031199301564237868465965536555879310707860571262458071159084887163963852510144562375030388520769529562127327206069149281630230338874760025459301104495705370611952120363128071877089606793197541306531645813064051738155680671561859233192089685479301670015297643776734992049928936135568584764258528583178415345412797737933047017608092253498555781093046322624879307963611840669478325102298739404053360224012072171588221387335977222613084951455962137216084050171591806817370548869300956200183339356217653042042481866119854645141237540506108830851939774743838030282929038413426812215388003329156420880123206744148732587782168592041343245106957551086072866338694162376499896175776088315146416134493088492232151126911718512950265871114499089237158695421718008455749199002917607738430741959480907748040878169816691316955522776302804213805044658390723968150800401430333881215348071781708536706835759649496142255263687722572483247549972090336579549825748244841342128669947188116165300470411688313926028511063052337420197204752282623577658483062490073148722060001451498495467052497836972227108575212083054003224019178325732888173282008836108910162497252210887072586575838582842480078344442650319345206756318341959409626296168743192429397305205363961797052187859537072521340227341405261624568919646394554643441595357070140915531566037499033383007653116064208101936634886687978918805825989144927888709332057542829526422540077329811493961008531373599948602857398544216934615620029343690943570954803035859515544540886794489743334324003525100003420048537449541979440092884164969730866739622869791697596136005924414768654860471431819070707905730227669941419412492460815868858300613004586450514932982766205073416909699030071847190375486870438375477996573642401782848767759530418288082227167497515228000449880608899967461738239272285040296647443116725885660844220683269677354636265386340251420787393036027199562823428512010825661145845504261331982984733655679961707239409332714993232741701063584415864608068673328898231756505325429434258955273518121756614590440987018908255808267765199227616355957956000567515575028722156892971153400394507340776233554934188048757542613027242976576672498203122646399706413999076438991345064973661824045546812667214085097277898405268981466457491496753818576837272594461582123040190535254325399310776333804089636163289780941688855736067966804908916608728635725027021832421235557516827086960634273370217849743407742379870826983624703770860621579678982216571947295310109372083589744046305649310871830591459459675583190580172971875211706103935826792730508151391267792076937068262317492592870462616773858199897210566499978827669052339550129828723704423414954747599146577145549602886715426250009574772439805864560207042289322583020712236592220478538869261862625465062895542056264053370571610984234745047246235166951711436838863476801223441833530596378179156325672406308007128557716438770319295773248105348341991593396914282004376565566714983662340733962188350974557123556509893038073578570795528697512831734685004838825052511748870104442825257821700449040016754554233301388095085910179996324954550115585717062694449089101418391250904239078948751980434393273517555865673112721462662740160851382252936996354123299705826930834960785389633132407304072211206293495250260959477085468138063991333914337753810081578677072477401958689620738206868493687362918677982382830170879086012510530061282561324715858158656634866343184309581218135869135672523496826006134194983523195997512145798523268703099008907571792877255710923769242618382075235533364786023642221868873397633219486333443840345767211977312301135019655795097614091228024045761647683231482491395685142316784646205543626030942336967828858083664140174581562672121129670857953214005682768433416234036920703879912916579673346576087001445701134340227773543133374100984122825081688735837279832171390015629190403843664064246638005481931661040713909510273025436523854360477165521676903911132390470842228461030656641335614631133292111023304393128015356369268517429843266870990096674338149844762779665678118899973874860477533657072853431658284228918980583978093265651755672789851608939647501521232287032725586151967546443693381840941697536531346490041927717167909234641472276912171467885065094679953637072842902184088337444461510655224648253189316265553937610649784710743855297343813620927626039995383663730223784747786287722278596969164885334317511803868032258186151394486521577096089803443549053486194796974110749927102682987377712673321373535682640640961195680492174157782870613187420423397720770159764564394220985856200206211487058858359514570809136668564446144312657920150436357076971469169020170036894165805104205731485390810171487642655119340895099329394561660122992585599135612792248096516751168907030761255472135242698519026698297679519560396100535370784111351993780494554391212432684691486752837966127392010229235584108224810610669959117941973512024462219961070796464491296422123369651754990969171749136903053519680722306366802089150482898931482257270190015705240494521956985341426172439573551812613136582214647907227379572583991479365445195868743023065285871684433857726210337921268809691572296798250649771826098627909638439949382683918057328839677560844616105502781130665218219565091617493115371986208741885341493929030101333393001430135038929370987880506403394316016334136114170152949245779714044274115335040248788138270089709347897765060067863555800950936189252059095412760152699377736669111347514291427872648384507338007818222078582211647578016009237259662095125266849225187908444991358164983865921789105690152816480655677593459012983998635927138164861488132395380059917895462500314473851538045275439139297113042657900725820524461361785592138775521431189978491371270592628536331106238985916771567893488139245666373246826128358953708710354229278855983136499728709706479071734456194261776602177416281642694614891191811716060645304829397579502435266550258086032790100353583108849277723176575184226441179064974266826502882534375329775257599902668422427476750316291445724607684794372047452774530497663817123727892427830873877960670868026652128624081166337834339678931308466610026358931199388909227846073837499370659351909922572651961909084839422982297913294911676059370224135571072857361052140038612584972617125436905036700289246564068881979242860896608553405097506041938788216118374614093073820179594487532650230319039061045475228055084557277490584644708994969075508096820794050201285289290192525815121676492328256118709850396599556207482171178606244298042658901730169103197429381898025734853966402401295157262986074864171545206662051983732406291361021768895611699476622676634808638917203441730651175103692428595095524944955366548168543510558997491892521225506972812143124248309678334761723027575519448454907753165224554589960301531891453775709145860238034012150683144463420150350055562810139780986970398985495344980827482118664163114224516936008911665292733374325817113784850873084367299848763547726335435454189761612217234228937177204856731032282982437506287937195097730916141280285684153637683681204200930451050667530035929269334334449431739022344407812394060620436321921274365576407988279415934960907192429361538595405118987723994460160238062661455409328263444927022211318347010236753260517491118282598488414511332884954188604160925522499840160085718838239016944489573013546670512790979791636876041829896089494855368286405423614581209815060869767387034431376069721279007628013259997770721592815926999355517723709704990593816031157253923741201384738673658292430460496144013786861757001405771312218522317068570454486080436714689238616408178535089549607859440065597158821702275609597731823957123779731885052868623680833706581678111810524714008591762975824153877104838254749103697363158263464373256667369929490768972226952634164251937133591230243273171228670827097562982089699406930038649434156216532461095887317196197090628503397755236620426449954958145985363288533540477753644177960776538360923671228433057778325571107429109702084971632006730762705265058141030828473137774148703128996956832767101121367826137888836639535604405850627694420297446713267169210807135827972726312997649484431433410043855608937882726171829674742127497854190815978098079029409546126892013029722437255549608959105121629365147724094753626446469198241408000007686338637358583166568940043270012153054062292443958069282581439681688761771372251045253722066424015604522694445606917337777695549349936984541871770916803740730188240316147033188233262351037545323660920938865401230957791723114094910178377534026719722090890914262810364982310732873362174122040166791487621273912442507048283062457376683274146419377872702779399406420834492053748038142844382077177287845915303079629248792044913333106590861224319195471306818819020534207925103168613136637464101860315360323604514269034597862899349058402034154214414295750209138851617830262864300595849519397074276450398617745914331422957113563344890897292633256992925677650415177572688093159216703816230055297250011928755026995069510988846150521222773068628610535193469648783384766802565011295920524021144785304582019840439702439367086062021105119020551081613195967335803043796906656216420475008070185114165257068796398730681068847404137233269929680721533154587114342056704565002335670128606609251658371336470251225565963610532294090554220009190670826589401424312233480713976713361926540869494937876919807442662339855484669853606104015236832283600942313548033123510653828776039622544070124589451292653267243288579786331335291686842143232492836997771231656263164586183806534168018979427277044407619457663764513880053062108658610611611024447086827455939408867091150772986763162957028388619711300939054713197582861673448751192610082363863592954859936372730455209634536019464395124256999518456801623694851383423113141697545947534187745937598974677832178207005643121914046596976583352094895367534275173841773269290418364360189553168593816178237845569457682608999124692296945639321916332625590256041554651659171138459350303724974807606050670468226371113446437538186168321728688824025287402945339351575479642259478488574084264118675980418440912137926825568463433088436507984469172985439279865134873201905960470936020789906678493901314840398844435145748272531769610640798947060170576388011215178199788711822812136743123903094554794780884698570717309243694697015730994810480417876847378074477917662697094658438934100799105026726040506829485400040966081575437424207853945763114105572708867118825197158973288038661925103708213400874434820658587652179388568366932340059690504520158204023517150021467528081486678698300573029543271294478100088677370765180286638151710356452489890738034356076993341928219695420392571156879707372905940954755309093006147056516011775564504305807883738669688160953990075269263343016549847805729832914490462561370832103801511042159275765800598301785365260724509445354268295048463773679863287812912780004926415108773150679496420661415492120870825720650815911280526380122825960461777771060491531218895745434230043042191317069391329939926489986467417814563257426826664420754027061940968243424076529301160993166290399988397659746044974667451322252258180009235417849337520606118275158894682025311984840587435986601642528892788945863130498888746542736540173787631225378550439795887726322678379604971980423380411919494447854258779415464127278443094374251251953116496685883590201352224782399714800604125599818481166903068006493104466435322547447766607551545525601727815458485213407686575360099064482662648326524050073863209207353350325717856488602921000128705149331166077855083340808247328982241724344121147466975360222475006976049905661012930746528844515462139753969145475311779692719893271620824054563855484882733353867667483433771018976442238693336903808927679345701722619598056385051849472201535547066185121211732409017223269548386700843879259141770510395147415053361994090535725199030056552067128385663780837237985287344087333324315887435743320066225687719507386004797152278021811882332719261161844146590126814058036734094618050900209092601523117790498350538461367016546640762177463606845884453597292137503989082477798593584284965786337731357237496087577124157579071606064570035784596132988874016463925224892618882186371334075323536643555560451503005026399698119019926742876524450619536273891419138472153300019989469031943832786495976872162970334059969279962441530618121630083514626154482125748592648389939932773161574610792842407337857787052789183379745339314825890756217107789347920123676588072444171511713332978001418761512122629706027407706432475376307486514749765827091089050032224582527304004995361159504292721344808330027784144079102563158954892718595113146826856205170375560244492801681707904656773904378724396533796057733199213761611771615181717646046841251033266715071886954877537414107265086943843735323119540696798917089596446762310552821533982639540438522398222421319560803435042386136633338680101541092909636547374373872708492013276946378879692317100606031960434184261031143012336512206044580070570716680628511827864007478471135545929415596845317332227541292719203444575187812289555757262243343438157573434552799681130059646130968093663233435648552418163002059508878357584813636000656264108040755257920959469616807392698505629078730816364661723941976610947921776846532385769301307426377354134178917728255285442905299140174406975931353054403227920597041032131163855010022680511306622131690287896383081656879705218935633584210557665581286874185033740214990793879783919601796899349943684473924234267407584547729220140317831852989881863867162489198220605323757447066665454071637813788225629220070625933731732750355738900699827446334681787073077889489586154671554461156679934602679212975677585032491590664841280548274861670458773498032538231254399683587889497086853807463066557240374500409180747951689479169048890433971702300584370062386124014744508367704505469292935596311084667538100569992183079493406515606751416436910470874860084225225258014190760811993542340185893437578284893785286663291692374693985961224497767621073894341408877276089851703043709445747364588880731704353275480509794546051827419438385279953712379811500580989384883782414338288211976686294534749719812189162976144766059007782587482423241687815654415098541073319431753351029315184258972562608899519597647577868536680069450810009149300620540557831993481694815036438488908195123837499902998728056806667594627321020481758963464308333546491287513400040256883556622480717850136037628025582552442157328858970527716736159017169371197433387362431227890719744633081672609571618326859899636460684031959207351441505701656450130597534816921168572727469626922872366027904685125223398975883671761084424957770732840621480567929188964443019504777574948799574729861455744626635002192274347231735278690751936073886407822464834099055423804431655729502680300504365024071712543477571291977552197791329161163756958289376368727187760770872849554872512612002058227936497558913096495723559779646619705929181448154804858469734737859272271292557758627897119146677706719560354667523435791746755570726612981367282736865692224907923751956744863273849978858495769008688231982854927924232216335041525376622356196345306535067612157698220610561052566801745441959089111199133340204491867410950272823829044630709915598054511587459952672002770800728655295958498079332203490694924501007124594371093021908673509241650265727507353076277558554703508859324752955612957877801419283849322814634970103408882169857144472076202937887010194256248328502733937607261211167082492299325195315549265237562520013875852456407015974225853644916577571345022921850292411534654770513163606487827126861583369020287694210257719840626733443202329936391565645215337043024783092966643300918637139371569489602278098726351809469921122076519574341569170174900243921523083755898775705360718696234810818370480087037240827466219107040218822632329597401270662342721799424215912313792826789311805777546657630456730191596294504203292035666371047174196399791316083130788103954274485165091010121542172524147131284772417443914708634003063920890066069978584605977120770973640144469518054060619239259080199734120172933471181068213731685002962151563422713835501543374561480783811225132838690747709360617921333454642640650718255908096909498888462245046421374495293654394450981165452938941237207506152233129537770277700157692492922904209094248081408550274796995368686899294495741300814035749445183592649061472241416637894050506261809800000819935807923231738280768663172439494085918193790170551582502499902465142002895899440060706724492859257641652742658205933256767718922485331808895714792777688753387071061403062410395270308339457712847754746590849877192534770597118173251661530675201871959126127338478119610034766604390450991219058359558403669746441783673649006022692044702434285029454821840917737831424666326619016678078308340532393324339215836079745119828486222378642083351287190665835217548193846205488674079704060014473320741376822421540335041187485744956394970924685857708731096027800115430686495193382096120502994689557829418968021810418312150965800207005359235604022733875065985700322333927779126976401043643401314162297686705828612688341236621141183143155603081530406790241684152954609325972983295643822967335010000228608162643260948897978263598102069978724230227402888949739786413312204889463111300694819239117694112595407194183067901625454069389007698232811558520226252299072486674469821117954360316497225817018982567626064203545526655110180584749809094661660437044272065715004570232173893419874097063788102651636629086560613912425851736733177899865567263673084198930608918653149122769034498496707135128937031718251878585544203467007036381371600726880516419904581298668779949780776316736096292448812160396906196942588293052244082478329346612120708266912660188633438460361650599975562132288238065189697414303689793499506663483335102138521727327617594888311298234369816689889768986178007746312733552185554704891874414711296954175131472133179381984043921240263843394944786036629233420348012743862648878879048152582896704334698662403863612829321919884813843086064822899095882022086406371355685600531128532185226406104649569650688337596533056828858061182373546533230808696332675973029858681741376996621089597160668703205617555632852940074478534662618672317415246958962173762879829548600363032922846786908374953772768897155725827996950074651708419936519093310256422807271453574687946290762237056014464940130668796149518039768115977080800223946302161822960718513980680340586670531902972371252167115190512487974080314170403091057170132664141940071741841793197212667648208939558028317223410890409970202708127175369416628158582791353402715559952332193770897616882939181715476576557214361489058827310435504375437543079232033114093938458627572359311132647639415098067408280174316190552907225164178514748901094068778094868167717672999716429921379519315397711890555095143887449727929067907636768795127350655003600324108474037926026606057067469161292255197111467579231553431046064634929775146523942227103415780585128847859444691151660604161504794811732164780840295798294664184023922985038598730848005686363135885442613829297414601054225327268217138326369026515126687977754474682018114179957941776053238623789977231572127315574158577997408894682008799851401852516590918373225084966178853922706320649498505243829833975154788348122059296102828626978180900490950027310761699387952283935105752819377675522373061246464344052595024756985059016971945013541495646606041193204488570844307366612645581079260124652216667145385047634987842945610448532004629038086310360218725744417467637063136033196386820659282654929174161272781209068496960171329701600935905643619746606048358734751074655366231085761981292095951856522863140556097707263908154242437726208277188309645250902463365964919720592249403317983937226054215773060896028668440137948660301166215256274681602905651156946474451246682724471712623018268862110287473570254759804663984323625604617413616004554043437599203956849267613445604530624114152814103329843556414925150215415520506299342688476513982769575523379992584425966907351411202473757948847414865538767778594386455920837860038370607350282169086638732253888229178269798114817189254409352692080790332782300654549982364940184616583830836402667449607379241308261929964032418447752034612053037705162220880047338313131791122399533465625339842353956821701778284115506042808796783914908834701940228974169128221565446294987830160266046340678367114718789163974778862087258842246971539658021159597083451304301835965764953456742117706094046965125912656566197868615066593235519122203535598347107190536363674529568521865223542143763393836704463476501302734968345024590816147866612350928230003574412192151699300672533205518174747770234087069971016359736376752435415286671130293360416583958467982180464751315414028235359809602830271623271223546475366972803178550041486241378870690988094312226532732371603737552846778689942118543916014702705977359409190123067739645602082978923274659202282283983535320843805784353048220400628652245913041350576524648795766481537182999017713309463692371391352225796464721553642122105250224389879148727549047437969130436190357499511163785253600556073271787909220324830893115502542834584937177848222152848388072785506436328478840541028420530106394228932983124993325808427769451135835894894651964738760328659631123503848832639530517347990314283461360140384856620929713136111614144739886452000140183221737408083973617804042779057380991976239548312955124691230724127499800841287367837652121870519126464188225948231191139920736045988975249193560219575338010839036978229930725348472849255246250992786261122726910606002489191799818345416102837242887094103067007249177053209432291229362377549097521040753424202140673500151361511213944520914721280333988960509366654081027900285365512839658092838818023983908512333508391477931441882418208336546873664510184786947323097547163355615556318449535402454003987821938292482759922860188897979240202510692874602554116651016732512000014473598745471503394385641362310381391044496521686253534842045227949383638177648254491285264305737887522165925619861857452270230052866276381941328393201675728480059595961643026756108200972737245359930329519928002778081116911595354069935722100273469426200106693964046435450503719348651405637037212079195450953820553949709159124131989629523816089555026537324866048217702689103874085273045700230237577417899280924501797967437951734155084220305899234864428444519479819170487469570207472946388967886794614281369249260164290752610410242196138400105835676132041594109433732236860260905258812612778271916005359869622729492886550811341425033115381295606844232470281116961370534397186448795037517656055585189092268596990271841453812370104918543909950896923592681657813537602033669991653161229888151661893688990652738670977135581817415292884231119461516072342333050399050108358699914562065915496792397312984274805719824302936133186969957576606774895521426251522695958138045517397797406313084138376051915444920756321493566328842409590258065088406482789617291208852401756492353611188614374852914065616726053465855953898971280527059265141627407334911471427232068503156399257996430077479049940103872739155042852968421917669277330355520795316561853215997137574096603034397559901904132202972227807716988648711857490718001065677924978621450140823908951640897549837043509879214759991598961837416550443278016494301280908363522567732764858225558713923772037746668712358664874980122250693766927130185407363547907609082765056885539384600269822027656071621903299528840525067713903642252307960689818040365883998680186977953557892746429273486408322170950065027894030374147223988320276302552848022328126819754312551146808239798320784038666341901601428367713736073146480682250626855029066606786208702890232515277897198999749331458399168867439007085928104576223302830925199264372122221308207110812240484527967705843652972069016041222647410103351379014022760033225449376485319514940999675447038794047250415406969896146224891221920495445017518609726759068951183270584367442713928122581871493095672382270650819799501918692981740849555056278789068132524935026824752122288018518968818773192379961197953494213791936547892863727257355818167053446130053219727594496161423471234313196659680739331777112551897692871504181382458603546204586696497587575765732639474285318103968221409997658702392243369948753453917110277327127748263034891072056279036804330613188509657673619550173451160715166674889394568110551275688471035418545488130031283148170010418036614815205487229051125315980805293103232355442867302374251496109447900154212169405443136909535134325512256106059651844793167480760521689527165903509989343588130682393224496363552962551165562735529439875332082224601078333655815291386912992456164398007301148388494188120150956667007624266528042613428752130917666594797567960990400171393268374079814674949311598937309036739894880131065018137948387069755092461272832710931088986564041652508212314192959592019354833867545533956849342574362537939222838438171188169023339894178034219597086644960253251585073390443146675415047114558688286957094660988756515991303054808316484326644954185412264198525022785934958876031123443661676420026176924296566082856662696409253324175275624306335700943569422768509048021332076481267252841864733367452603706597934589008696757111586862646213373190607671092221996485807084522312771873611229829169373918426405918221652894132765611892870005142479990579496713258233268900490154199040125478612624439319384019182319773508060472710907726152507943983991028922146455425697342402977737400217990624931963132449845163005194993112518398857875174975648716844630809440618017647007053253888535657733452739244985435909277856542486141803709549916441706422492642580240257969273858839810437879164866593170149445959867011223065350108087714693806659063796225942855723430517677633604405173198139543424232943896098046243091068319286973365617229214237973821015337980413953067913145173065438614162478783121963013853171721223466470201692426042368531928032237819097834054096506298627498208161231461485526329241668576574648289856217947387078999862002506901600612278112547167991117963454633354021743526591664470021027657243679073372404259550773567132933859052583475762702022428818927800634554140529149129381810897554436086082448428945414697473619200147167106450763112674494351571397918036139051931819011698397869827547709428712673443694762783726994328889422971901846713496198277783039766238487434269014508503251744111206893109868047805759593698849068812096030190650137800996371699049815365512588073080465655838483886233393769226745810236643704751002407927069057659195797817030643154848253748600172141590452136315731507982880481697546870683024305371834238377006331315086274535278058238686857339410083303375333759850042589629254800920447343571718799476137205872790024693958606013348766175970737435452040507600331308376178377775785890203177847413962350124569360956461681811903118100192149260995992886736249534445977678937681144677324479277444481266769262858042735226701413822054731861670877789799721537711741635229927867495784943025535105528090446738084589041928327212453905296030595521998955679636679111146312548675571600404091367318845793906587973015137819085069005445194809830801229672967645340430634440514146776640084599414530465510991997519681950172171918683916718367964256555188856426209132293226323786654476207765182240418994632709136577866100375325333789244378012458394140609765010290860807536584590531160668626303717413751487194866610964214015334944330643411007953882608551239929999375956852223202103343770440754511145144206808063788702905262117932515434447971852836746860640998806894432164096376640304658032958068148805797591027694175240637839523742690100420366728166957393823961848636730264046167503322112902543330346526124856891239236084142506765909487070225601138977840089557148960215320948973796061765178386385087620677968029121712400452080270569302240852033160649396622808765017445193180240255621405128017702854067649790247968641107613156560139973864268555634198506229214160325771656838416731231683181893336635845203938434650481809334198897480236793580051779290079041990378460786813376021435007180754657750504779808307262824582192212416913534636555847352633772742727569306906307683862611193880053164953790779384719481619322758212038395796335463375273919859379972522525291910720591327919871103033594050009984200331801539704927418601244090718605610714449960402721935161735952637326863757277176786245031825816024258116835490367124681418069363942170240674143005352537379544061970450776285763411539204770824824049740889392419309074237060304571799088271940392189876634293790515257437693537304254214851072518957154943808359792373893919275206109210552150511041094828817900580483676151783788103331958733709057185190299211829102913867551794370664990893126625106335745434251189884047164793009420208431497775419160390521185321202364310085963768946471294748752891637581995930545475027457449352481390971057355813757148314700048488119881646070618425368665186475218537616249559549418054206069681340098661873132995335741950565185154230420642232007914843892605671001143461978481077209304204368106765835238903999706419934706503607838142482070094373949332866542261032299968601833435715821101829438845463413925091583519292625342583721932297977876780970650400524042936757174059129565221367448103498116096194836816264212287371440345474113908924387871075105540050476968690727488724008048100216881986078226007556512298145709994826632791110006309578447140603596513504695829924512337821910994163567771431635592527637182057791584793959316198637814301768993523708056970787604213702637216343981023436151439812148218413298341444460464349761193207663348431650891288642783477619539705248700577996474198767348640357775303422513476818449855038706275161289114408399787406523941251122815190338475330243216995016064007680104990464488495130017678170594572452841395644506952164257593958064853372963672593934400404832008408717257219379486418349099585002011709131255000022895891988157965046631339482869555991528564681147003989175286720432166606695271542880467516336559714574503858352293598536067425325067587370266951627627781623340357123866950779701000335409444190781155162151266194475441570417500820870841516580780565680576937235233860182625065855473882572376120049934426017129283258652556450416781389621375918019784735966474227863579561564057272762570276543124265723350608065516310784145462573192586130608893380303677198526439315284135474369354104378117185862649579369508163524051064306508520839038657787087936778148162413807806823358750630294753839435309191458487903560606037813608471913742269932361587770355464324074357152250736006245265607096479809308738933313452549914658776574177482599854291271635697417037365422829414467087734117828167815059535657530554458072219969786417071489556927768462806840101938038344326784911785555695085868059092909561671115432122403566312611221425047880440497804799185065837611120360540002075129878160273907652501610246082847279885578574232925984918597678221176066081344856612369080048508831541474161978729606986179807885735702539347148250817969729226920980088754215543293857414187476988154458760722977822846256316336209418845762774041201811860856963633655990966424568597054709202625225438917192617173679165207235077910014250967116027812614218320370622183949526056657133383206233011866202867958803810236297812860973165390599991862115993058077477739918881345069466625053154395807871588253785019505221759956355614635996469470158526003013929920589800712346073583853069646959344376502277404422750005653852371797111216406733023380067745301762098232504325982498942232293965234075859198000948590627512379859692730555216748042460294038832018950288501700211748515428813874641000200176914504684763058756924608913152723262057454969639558701594680978573768458240425748734586447349920651859725438645240502496871058768857588333996690095987691780543487991298289291871385369322332312990339538472619640873624081868905263572279386216968911431796035948597842137194999474065442517724371852827491576782839993285819310240466256685496434443011729906885634988932218482938086597701062226657912223248176401343441300176400535531646985902320590255094307901028580899815632966493022730222572076574851363844186921790395476469317925079658072756099194274768716504560394729342888082348292100347304077436048357885151461112740657634831132904880675758851349942586524421642596796851303056256289976652390028888114845453851659252512282925037327847973752198059809672384222424597240460520214027244255296585658293259423253765853003434484914731401121097953539002630119883969832781658412093408534876140562051619928717173916306445484630160911352714015320433420973944263048483731553324736428319769232004543061346777879173684869368851565413772053423510604753000563828695652742428357239715641347463989274034363810812885039002821144932803001931488644255415238949645654750802488575218319147296144291262043554051928498252631700741194457614405514890718018384896015562360860849763216090204039960632618551141141947392604761485031450424040523846744374639548286586439065060198973048999814935892094170192410599488903321560127547144933267467762993114737173110468813360393626272981257782394215936648346020738562605944581327641626186635705981977475660879859607693819899075361153044429777448939773708114755092859099198999541473977146091197819230466231726272447633462882670246282796150547870595820064241574661488166202331206291318108289814921500392171936427531731734770630249570406454857786537314247053608435116756701571276789442937062348317343182033831652197318207903855311271118175268974149750345054679341441342964574741643816734019465930581573410686388988322734093305278244946135187723692732151471706386371342001725404665691061342817319560228550419703803560670182947263862374786794369193755375083809175618138737058817316056436037717943569778566970982934319410734676689000825456879906945828658474744392819251062872087840800509996501460519082308844440740689558696591931725098963380303990050373419638054442479170599408697839979230975492171858025235658751722132234758630729147580614807599041574646197290019841790388199658345271387517327421684362837839419386950396697732309770788737902386167324850344707913183277296570580224211532334720605353348006249170546320758114792807182633938300093348806027773967857734985610824205709832168810305222166074603542625722953071023690855549111111912423302942260902472392467046033968896725834117176543926434761357331045956592728417921182688741750208281576348578387646691523121246000478085454235284042253961470245428295887296392342638719785916123368780454044914704189107511821213521230715390037611793784510322377932908621103369029260567434705166324123067292240758407609762082054734734888693245993872954283265986328781482422807017426001978312549773303118786866018541448481096157597334630483197931695327674749612076864273610868366930834085683145759564715993824807675400156037942696229428527291045521727562420474232688669019310727710453398004758325891326585038315296425354126638938125601057895912548843137760684924282222386985080009647020283328930479667914957674992335629194782070177655836951544052332387154053149776232334221920567458311074518296225752246378683128079371645020970909197717242579732114055522456810271054836251754385136089570573007978638815191760968893216063434207924786219386227143753453644214484399347953120877914205156930387716181718580502066850296798914431176534789903677475958425167996595317386259905645329502052725283829770514308236764470771618514416200774628244165310647813249848091457414741772059159829181830896394133597771243526774374016046356778905213520681201498339806620060072129313187118164228927837808975851095950846423253030668956530819621635832819350076304856433773790758606936971046603869371920582397360052309402607082376348169028644366149102027844929122350853342365929463804304454350972692279644243607149986199174463024851856465209942820879066108975316533406296779000177431505145262658760800824032315627413329768468541512331393391183961671723122925322098606603077491407485657852887298912886748083104587748060814506576708645434619900615041395906082620218838320676264169139625192307565844010260322739069168395886355872938642981812212329526634193033333717373803890083763947260347128974507320734590432585044858066192828422704661893022591439345115288668399433136935371848353263010709938856141847061292211617493893359996891156733380338621835945638377371589092459994259603060898291887325059247443832239491214024407871267505093643906899661762092802862951989976331972284279091289309538093393733592410305464579438300509582418140018951199096184356787049742319119357737415508369379963190240703975664242997491204598449802165359502018375024129155319419201837753182565890839560698435075583395131687670514547875157343469365991910985608097716812415487734261576431922139568863076548943694924641013105772192436057953160829430264356801625342846923083597367693766211283887685602320401264841245024594529341613249677408950212958998333898382578900318378106049465644360677805464558425586993842155410665972240003163255089698642621243843824000494176530281942548945555745755881293899569503660227383832279157700693785994134374449820951056902078079085870053829293471367811914998138848526886521903035289654872492959209913914185289231834535728434116807006755155774054494844088932514590562788876826041850832341728572025862734781790767509613309575437079736080110476179167794136273170928321295005193635269328103117075921152937512265311026773222035476303641039615313761793567329238295149087176314062432442441554768309064553101244281420469251594296968455844072522341680588781356870590849755922811297980051731865723138049215729200134537274186908188320316738820216297401948902815064812251316580987609754785362622512320302699832575847434487395864945016071805070497107133184281294762791243099875605245565986367334870211249520969300600749170443284572307883557797022775902847852633008855882307222725943449261031718714224251641532502229008370865295728545310685517387099176754510237670895779104818543197565028854877425745422768460150805592784817795258154857531833200762783083902887904227206445274734046326251010584075156702224782740192971737275958282288605426272883295089337184731722167027577178953704469745923229262651006410305440898492253937182093297806756055583726019494265656085657856733001394287682485319175328267944603224342436088235376833665026569370933716418890623045299533739420808975756622337991571646199520951462485222140233345675659444999097798318749430401872946031586192448330889952047992454492420538123734114056411530827468439528138069970296446043851366747149021854961650114207190146191268785164395140693781002997507057139643238067009083506177400758955842182347864358934053694903090623703632112541178573076626362331284990213010484604650930886734844397632876516761382807463611285436059974549566415305150247915970577282805128738721054049505011635222952384506180026788879650452542095493364411085930576191959487599737810174957054635795396465261881641649327429334287320403428194640907572103601950441733382578110102708128616793498686524199869806279623843074115007168737501147771414133563340457549815605820710626796860263949447407457127755927225377736522533795642611250476938615139584271450319042994979194371000522062202933578009884739575521715011774914866649377174530308499001164400371383627480175522899108704850245478110433119276810531448888210687573706124407993047580521296244460282140951329018570602042841249928299309192160322389548930173298698949286179958113503699950114033933103607195247506295269053166088251191846860277561091559280275619310352163755471735155246142111212139298492450089223356602964553385918244297313118231450107872560184829351324781729102599759939906991672547413305794896888788267819884649575026397726924990926233277114576539898486093427725571689580416036730798286707085847110109924279439198329354334945205107555641017642629136976078131671099217638776248314046535149470658654429943754059415281224003239841148049150003905482216750472352813852607591267657671081995764651919492942243432136011268509523456129393724021817147338276182153608754703384992095457107195413063779694310262671166625755762560026784583408283575131078899529269092387025827112861135007972043295691923251000889002150214329376996796825735608013802885190133644777177834794844451629134804584138615104556702012004713443766089760488016655296541740715215827539749907807482618985896180882403497118552640899577950503810933496804583882236107513316576189492939020212866360101264380507118448891838048203459303190275670138599233441168144578089652626385263851644764053406841669554945846526148520827194504647455571735400527894589321798293519593801449340300962096355043020223358320200232170264064946331538264657594013537654416332017727975278775499398454774344441018191539713642631920544093595504139989652207164658002528446957035386104683748411096269970204443137272769474647122809212054717039025869056276852869636797157093881513240090654045064627964227954801542288500365592772148253450369415023307870358070670903438554570181352492319063691498643957180488737277168478920545056017297602070613808540774541881786171975734059910204137914094961583143452790443245277799139631329345151442403535113727944281995259339939143069563416625882878623724658049899796998091798890707197786942869507125361317422850317630567450528651062414338480120063482281119687612529547087778477672395467272195997471976394942147576501913105482874313279574114244060246616706114092787955803763922251684807661227048450112546199512755219426421702449609177140135696463881572610993846889598934555281156650561910689183138428645967810050373406827471039373191588373969458317791332532108246788680617605740079484732929560056513925109945933348091122741628998620492284135571962753646841262528942259246076101031946112333027957552328719955836909105038369024176976383258536497731962693590732506878997385137281076829612783813546839153718175677348914063575559892489237666423334223510728602745726368361774453997457612280546290102726279439226858855660293410840711022735505261100873685671121850962742523467611648025307187299428598029491055790411816585525023938929279423102703600748605374109604747130285649318627965322647879782222645047781011027884413518765422389365651258262824252745168872282747377812315447542702654351609787249774556488360603539446353112643284108033809856709670327637824888750996758326414505676782036849956075995712031247861931673412980852048761850440959604110127955696855217881733673954731603281707527239590659261023195269377948900526928070930821342436461134449368924860447440038179847025259998530751497057371683692651292252343517595113512891636500977527121606116610586882810091987709025341093996556401955484184090439030384697696391257626914099682264756012388404193170341805383201038435989263766730510207918584753372019398672315529601359728954649561189306742115291650343502284858078791269932757519520641049603844093007426814563200671723063637260704743255471456246352550046331700845230620340934376459124326417133712883736954316873240494328360578474676649559169813715808124678792177414201411225835917775159123835022756360074989226558040109296889184858143044795877445190368898083385644383704599709852112957394695028779915291058040364101795479971929723270729082274536196197863673364131169069810555998229153666307766519381208936101049197269212965004298992547810868975899836994714713300988329765061448425624688399403630963693327866374551066342216200564985592148194166119799156432834421117264615551494301106332791864266234052791757423946497898483420220841639415193143630844461150423275990924623856021727961962552466227651121313323937496361736221125811420062027673004709595168017102509340611754300737418682799513859088446194333888365250286025233764226958429634698845600260839344370549613644372763613300915224786973599619030412759836995435270034499481215139445360000682909179271231272470850887887270042285629544988701282947154710602205618935734718436430018113229505394083561697899746646976505096553982397876221999684692111483369356511393741604106686750301837243938738797727757068067756039180602777769704851902083429047891400787856645051264976354321747712556711545713533927327388400069044021944490135438702687145299007199882311128528831289350429723505806249422014966100884651643247548582964182951672400937969466818941203898156147121041539402706767977747242951001640590230517600367918508184096938727296860978253296696001243475966199111377551059638633909617902372222751713500105569284779042482800439318074982933558715661393840833622283886376538564621534912845300462407796006268976751808751874841266594496080933214868003547175873131069010166134543803400198032741545586026033789872777475539062725611289108867591713320369848381352846103422086209510664361337283026195817264492860528500067497833058438037880889732341705733186531430040132207876574453221876412347280132786483737896596069847908486080313459099297883504708957397846746168938272367995743188030382363549530836290778957456862508074263802489995454838047328521400556174271517814706030145372217504149428219020788975412927359013763602633995280195885370920369564909900897537946207092879284146961062266800779146001222680710713757008477351748331608028097108170867455029909803763991625220851108897583437614274804616931218678645644547316354721635880152628117317145577132037141751215714083984079110623539206228374497395129975372540237256214076428370740858359336048697036390478111953461515429160759680777255930333867307171361088944921087314257229985813086556852237546766437641241947918378840401871968384224895918507981309895912980969350471364820025759254997527595945249296792622079161183544260250986703062472620358174380514808194288216402445970060257500348390056129106006653636185507611931594188630646122109609600766531202997135989679881691886678611042514480701549807799338640312685101118372509267430856518591075454515313722667209759219102655788868543827708048484747476213348444020555673128103571787639415608677458438963142035168703983152974856726390938120806201419347349428544240037757431500790795285290944578675255881082616380787055270679331624106846982999321842098661354583061147541852983712539843229618176383576287137879651984828233803113299349724202192723982222574735721901948781570210585322808700462933598521934342986221220178790951672316181362778936366762331589813223072271841206222695838353013138927468079646901756429759171334226198553921031026946108650499101506739632126352106430344035340195726677540171532075116180134731606101996958828963340766853341602720121143447408030446965096003563728437432872440490718121472673988312732185419828839177900898913039774259809928755436533983536503185305200113333413451402965964619085444846172151881113600313308011577810456592523350132522388050191823552248382598771420894667012900613577833118125443872320902192519872897677830343400312394526079564734845882224885094428630890222322972873964602795755787106541696926100692968389067072992941431028973459498477204439799469194159526989254667107214767995949786556914969106131300187955792854479701776180821042677908688628643959113795919589926086221047388981559670975531407910607766204820027146381308712916498889718237046997412673504100860232252329738202784612477145667727637159895143010163759837101951834823031932164296742327290485769888989058788480078084961290969833996686738520801916875213715132358201656425637771587790161804108028574443238060574931550851180824797609804335476322227369625020068491697161846618744447237630996616193402256367245648259905372480102210076622124480440605128512638270924537127221972179366529090591425605167832637164465847527834184675358833744669078849839396790528377196869490672301553266286710608027138743882553467521062631214298272635043638201831389705129137828625352413681921512095437547785092405030626907557571887291775249565941629128032540109436583927818691401504893880372384232298291384427650790436252126107573707430042882175157826388027333965376296116200201742574871344400916615311291878296386549164523319830506559575361361290136325768994040382648192425913956168548490148541522115155040818501685283956729331363752513880463191378573600234308760874184978414725725573811366484235129958499753292064626195645712765246227208166428002258407935583526090341647217387866733615405131812476728526410537135001225639537605159653486533939003759770442548334163865035922535479977841317181743277531258782108532969374670911205613640326298266875263851747239126163797886282681094087961470605111848638239353173313990660914845675506822573398623088644950340775579596537252987385364473476913296309751989355497260438178508996298934430501370851842787397436723806466607751087311643753106739899266523770098212701741163792137315197160852339646367258200209779907948383386449941801929866031068051405003768878012007368206053436296703673310206687685782678472624892671067772550607391103850189206183019096193185085358251867583621840311471210803070753999591286728153387880196141249063503000829123243770417554668733882079109789651417035686946956589050824681206909478360497797514477629344761515929587271623542281116868372550021638003584887845548666870161326437179216111670164089127985933137789763255934422793736600622379547391846232476608443384528452361057274781921307983325000067384770123337325044479260993885302161053234647476815829179587871520249006546290902618376687626309545345254405998101712051165920969519305577786357658166362307317541039596123348768149050713975429102157615433396163947375507890820370673392902575753621909746299574674054633146570691620913088533811119755829948593117037168620601546561006055267625906426156955903948319571711514307171187775558376837236707585570467200834671544494244876686048795577555889804036940475672193408943004894789009668334137458673754033973557307741898983714899398189416440812862982382336461120669793833386154813397521855981966516275342736661740052444615376998314928932150510726759369056724152291196434976933979374313863597344854749248070501359754684775221131031129593652482367774088361037794216224876407235926896890250331647894256940367742216487174324712183810874123889990903350239592357724445985185311231357012014725544379248862990440956907354213713957216408890259758186072528297062152923111157080717508963697467883228745730886016977410023524792844868063929719472724185618708510531032473553353487435152733693238243333163500758689966115287312593518843019196797347627230876429403594926712384426789586220807221142814450217152788422109118322578870443387640577818848291504782206609036619588429083424232367331044957922162347458006946325624043683775498030874640484288498402898826050927694906212413767249754571171105264602119959046426478516206229724050989719995337577673989042998056721576200656175409612160824774754720788849852122338169128044085462944396925294373887997660232260516151246991234125885179122185712536794340618668168371382739092903689131485464080665023443238832405316996230609450345927651326026234439601377133658548800539125935201037051913742040983586489229605866554915487078679181644687094321360406961821594889895443182982874925728983660823009354888474140779176409599372846963779576403333810740917670283606870461060266595187330397039766622917212722016070004435611349689055524553790395958080166148431923840756961076172143577404464303776139479073786331675263478692081893647376826150978066814935329851046114037191940197391655735014965280810633483812414374984851214686302277391290984776249981514684593948597509222572113663446263347757438673516971492667054017332187563943307154930861590594255860214812861356704273626093181903828322777727788194226214974471051861809006032219051728232171776338984164153961915726948505563216158398985535658003713630982278417255696663133530483182407476663727704761538866806577669736520330858988752350486560362647205098758709623041957023547529135194640701888401505813563445903149728584404025458614586993575540521529737230078487739738688324231674095796850684514733356739445106357261193055041909383814684004633724273095472336058905300305561651452988339682377827103463698491275099922024523367976421106369992764979843490274622964063281418925015677110951486568881995656270102563671358255311665201473481903571511081378518618162816119803218506470531456507114811293074920516993623529586641778704664812225644621861024383744487537370657778409998694561535765669663277573342531279523512232101760560482222195735845203573487980448980501673415190550010941677267027492244292449679154622194104302083992676104437051337355892339470661668466134281224643873855026589951121786830462663120174562236493916076972803389191971297752405856037678385402573719422140222382126635723196406058782377110558314975710602544373972306722892777709227891693234511863951849967553860212757737621521021674473908554772787287632509424711927572688985344639574572066334123514200122737690130183240104133307011567534602195306574369846676410665363271212163517014668358598945018766087517438762155629772157349700124543572904769547341540632759079734877588134413482726319144515578314853376970520258632043638367469161843845202206492503822260611795015198493304323869667796202385828656116646539172725931551578899082996720503985163126773678522175913177462244130551799456338610427539325466148719185291290785307844512766478338391052880804816115303659824086946074450309695193825919482177945769150734858425912691716862759621831106096082651519754205887087297824034459791474629967737725828116311972770134596917705977646371465100300147560105235291863431839242830105079618929122223927755561799599228146662712151127516065806523127592418381652414046296165556705738329361772161602949416735463853926807102766839551526411508638551306900399863752158906328833204367104504102854457781981907200553936719130872636354705111597644352006569332906656742087010789045238840187920574207060573222899377435539043764046047157681259061854095237303890606881142340450297353240541012673108100105375959212957832966686663332876483951165064127036678101440129981323479050617900953468723287932485325314232026458503765362213778475080206111466919217217455980116228118292859727381970550793026364601666831355174586797138676687726332123874912017511219980470343657145344773172671874075799942413591104803859607053421075647382156447059417241808727225250638622710313351334006707404397463312614524934763765546550043545614886371385691462162546679212660628171917587637741499127550778733675040652677707467013055883265169083417919961915024361001014541351412145144308422005332982586744703373994758827429757872565901185929412274417566482585444920752646996959613551204034582539471356164825438016738615700814387252085640447958695025748654127509231233502424159512021810743204151708414957905741272663524699168006329339959286693311736703437302293388323922357313221552129989826223373612388208061805619566336955695276424756684540295806184722866641641282041639160439321939569989430760444552186052025438655882892428119112924871306079062108800735015627067449321400441633124649870156796716215543362554882714957389462448610175881143135352651832069699432080855424279102544832772503303762179627849059369313435047431070351684503421830307908431279345605783261019215929428314411845069081314867783096400695721447831925752253710077569366539087337976699049575809715078479671702678085435746090028312859504810225122316440749193665430653477819043895717080971842541326909044645527872786217890351457561429681035771780929544237613479356833828938925181008582023732321993818108771161033958257499580692670783418885185964141762290479780149511573472718376121538424806575387909676995024043591913403957074528381753455366711218010491239748467753568988506844572863128986106658499772707798476519913129792872764161309413095787496063664495356529057454642388677806679709487380461995108922126943772616959594313065203105702229475430985762860281931032923743714278931196030386252507716736919022780560362908284121323640424877260866875039179521369566855553370590708168053882970526077808402517673828664621660796466016580655454708544035135337986843891162519795883733694588793920237013394709145979853627690036328778601169256416011252335293625493827497686835514181669575736361119626021096111294228661464821052166721367390618521598833843475477191417070217376179110457212632194961036279611610310281790215342753199230460797103617648600188649117440352890658872060179045369187824307853116448276187986299733855427714530729941876444308495673205308493722403222705258495986742282486676177220947590427115993864604396612500757501153570813191176658635777737620721194008029117605280962584491768746596100809170503548330672609612928824664699084078650160319994656436663769839206734504943251646729923528563866303590859060050695646374801196184923370191985368546190868008906394918079256241057729754300313076499711027939131751133336429194211543370596718460563932969657289826432964403399308542798800217605674626130512310802586650977023163733081272556287385366884372694562525628862419734887124033247951103441493180150799798204268672080611282460404138533977565219469601608024199750019513897940403884355794416127074778045794154086807998570579025629952071788103474351861978711740187200689207449412213329027673419182473668933805160972710093190101074217727511804644745654947321420118735317321862903550979050906242293618014381744395434504970536148832175148852263740487474272322499219854808870611381738144592158971154073506033487848750281715965086177990667735444342753940286271159765534569191929401717126502793741234362069140647984073819636834640774871979114851241591348357306278377992734560582611211824421420999496876236139589239906983594359182892892141644410223703476617938450061180698476527560981815534526649656414201708260974055292389661353422715288324708203500629381258384351621994645448123958944301582102640175291940849599619070861430968206182315371409254791508620729489867548385280444098325999807442742539565487155884955377431964531141414092683788286019411404381134916386664572079459243242806540436074544716054924472233449539998626076222929853542117978450986907703645616951461329525747596649881008573111041852822822648117048751552478680315753339502313876867369479280758087894370358192790975096073502671718045650388380317176052823052427086439686025041041602262842907799563936100343755223317806521813849784758902262399049996578346385365155563471711437659245875363893298720561575731980420514660726571939672011300225184290703434516066687646776320163018847677130554493622349415949719062110651927823303180481219401251116687387751202337291944527005220804911789178694358067529932181392636133788515619437326119286836577463660487689433685866967865788587464733760771034557747478401754190156151478280722101644138357943276531438483321434827942485108275302672335386860973940601069275437106684922582467357318888673644755709545582872489649520872988932144985191432370730112273694762157320192918352243050861857764334094522771734607285042926783657685393516190338326609803147248381461150313452465143472879294146622131489505176759766903598238322315467431599790117030868488458294365549221007103736835272178749125568103768888703906845937413243087459783314830457241050285198426928300597403807938494242777370974634741931085037904775945333784135791087891364103687176667457617364085824852284850706738296753821519878020685037217731344698175014314276345253619458069879908413536229638380138351126903069075251092521262295328050240478754995863067316709076327620894468308383302803363217283764290778198002561129357268481004580277897122992242159611470194601185412915011255143888495542034840412689591617179006935520546693634081323409747336353346856848657924221425006225269280242340359917837747283787328334208083242753473692823489907554067649411238471881970953850848456666248007886878981695719801586334256357572998031705589205285242896194290504067912940391470965041536811879985855630270601383107057545030992811376881603938729939698503074971461240492891965107854190161079728827834629840706882675313790011370101387401960667593666364569514502555498529876786282158938082078177798505297133365371187030541817248337725330043657230021814993830759791474850747099506201662484543732837323602189300253269584101804758627871114765057202158025261770578236041014438348814869570570346287933957744097740926679326151241648221861768510429714315046596836025911157167955515468134435847990149963695845659719147446220703731440830480581986845831104014087527578978842257328838125944038764866114546813290383092131449819733891918373680327411675993981369516736117149480873045158488708170888270898964494818081077172615327231312147093250006837774892166749675333785451388185175711811849685301483506663535142262091760010901422451055169627074196531306989755588412418357041545803845279604851742107658233639371403252437679773329975409853498355871280380965456025435952948968522844957428845570173595117483238798931612741578839617282145098864188760835113652139868857351966560225896832631678987227190701420596125361721068220261449094560603422333167817043401051398296319199141008079265952736598923860212319815307407433387961642010238359397637374853042913332423430664406396905735490796771866466381634454517703761289430649404853870339100074457705830495793529354971166636112787043880146666543331860377694490966092017302845915157293871218584909601154991077588139003104040920354758280080557756691425583421774445163295927794869851554316593267534623810973195746048924581574879349778109393887275339575623076701838357796107800976060250528794319203175344673928910828147096243267847923462501103425636338771717872788959031486979523446465804561305274617092845426375009390853034007600115805008825514462741164154072274578146580506808441874045525875043519223363239723778453914824107618685916432145582709881827732536652145257971990080482376117057323411288646423151656137911483853279564279060270460868606268262626860754679511118403033875476616945388066576559441248211327711875276727341078346039937833802852078352286550467255103757919174051647617596115552002855201850572478076140714017358811987287980600001293139241147365919093785374761838398775982999209972133928604730088350157642839819434959892228767086014614496518813981901119882659806075823705019716500679750242264187204285738548782702847097477812704531225619137344086450103516780264339523406416264445790876243087899828445118965670837846887342498300677598798153022813933517655320113737417578039412854675395144194013831418147829989388264792559689187668759008946255136278411218431371575445306014119573703469893399182973071898247161165448776390335775114424351029252245426401061655760224417890150252981792869286890057229351857619961097529373946366873084540971328580626854968881535384716153863955847756698578128110028678543699838624312788115071422365249445506814880403046954920279482534805188430708953165998842012167405629444052871732136672152424844394976199033590240005189654352298103265393395559658297978348007659378076006637662524384695420003239646032959546048316385371675777021901048674016765272841535527481501497152470952905470485437243355072632657644100588713344117079302218830176491389407560620902458185922000000827744966376864925655438742870948556994325917272472688235406937958721604114738414430046608575391447434770744570225544323054458585812169063584986361147960175454310385109145545956661872175580228048675941052206227574971328947663413031561493546831049612216445182079388779829904185207163483647083075758318675314144605452793252665232530578700252940850005827734739993612965722903048986614067357551955129516810233286107875323292473729021897798345281162003088691294834343649588103793473923591580534688801390669323493587303576444933888405703794989868906804973173738704077965832833672571761779029813929380182526361461066951239845983157405964357824364827573935791414889316127250765690814467290975566327446389294750713866815213907152575780051154694193116601653449734285915831410913502005673777836049869710231927174689145874071110143985674024760079414111438178532837618029677181740108566095907487486073025659542753546525811780724762936954605360836880227813854658567083612710752294076472992502620879831818612248631822311664400627009797640404713589689380774686603230102519610870766931771302569603224559746044983295196812156311278314254017084748911060542894522407617456027819748425884647929093515738820642079387022306649390592615527973477292550854080495329860809635424133722021688689587533137374042074476499400448164592906040798398821848974800174503428018291867424979661154714151903119114756581163371595332387294722625381815755813250312188155959518903668172895163918792212609167441816258272668365504216193746531046794312569878915057583089930736737697715622928124977159494870515534091391854708506968344615755772538072526909663873427720065079143001659833451051328293789748639760161956860078113255143661591502369163360391250643682693495468510455975468789388367772449760671339707635243106738066623656375785587370070614108067035093568742852899782999731395316539934220259196778213434702165759313768168809972425479718163923508780894328180683955200301934162706546576505962895537207850998335687742947621958298916061214032454762553570541195527921278817669805704902299335122456372275185656444052302676067567986735901369494536098776972465223608505760700783261351010593695625775608566602384682917692205204392636834079625559718102765388127302180786698570557547347371477226452248084432213626582389005196832626865439466274114666240406525926412100583173448166855572551621948240620725545079641291153421161113647213178063216311148646258006313825601217148791111756352995545243834654525338256500216778626220967373190370167362215675279114410177321245173649503587672132379624683337466251022380262658154963630103499356871444654733280543674562316920930663649425891912113370964638596882532204387859440133271426569814080441571319316319372215660159475330504881487181498647180891744079096126123410246435170140634041919522614875950630216854191457555102262859913396400879737899795667042181249409777375517175983213113362428315774092352155326862851400251644829982223510906720194099863805395382936283410644712205882456638710411905034048615651467601114753763326788773490403910060370824901662004578327380490848754338087117669680937958582754918761289031034757867084859478394898619476293663033824003021830232648721476741091928528447337995378000996656053484045226124346715140504037176549948116443682436918521158129966688734243133651878660498950035445720359708272961484536738448861717674060417033275455456398365562742553949001284314013578969606555208232777412026242777611823575116151328561054656278290957136801357734166902730350688104659838135915083325208070937645563378888639704989326038129658457572986516538427449312279246911701827297239381225786439481811600671749519367322865905822429274690077145351444608842813023024411116138344203910218734353613268358033130405023380890722801328927028271764723326052677261269104268349784668611185860009278152992657246429035674201323882056914256168589447060132023680214696197475181534450117436894055717257201121190464066712755266336075170532494726987556796168607422676820698108832514107352006898580224276279422027431325095752003164956495722031769829342247520702413004702541913334179735817647652621283339639037580764226929696619736331238791773712880578960690903149675355503990019118428392794271931211010246303952275551487076288049595623487365218071379319988820635649643803597296937261899371421750741537442406870405004162132346916402935484133914974442268730039400055891643171569741687656915933665529937341965691536156901051711620961722767414881473005107945778402930931068624952035911598358645573924164982742072439219401708286263524472631999404467830436030421769841878311557501854260808519778953674356335886072721919794629988887869606606597164604622881309313431918941070907160847901373821048243827062665752762948495534920593148061533853243736745803798767568680318895477525848964606074887843233432866537638574152190413405678930189422441048684884517481936800814062880638577230732498181897038252379209290978582894229810950312769805659026924137080637498369910508509825599709605043325873594821764012182945057744732366775909039298222019339689920392004691881142889872807470231840620405216436618250183259106732447268276705560560024092197852317905195397932342400058303537057372989534453097047296879386917694846040903654468872107274173497090088734093762978352211202305077368044288952862709727570727703769276258782766475418439853552659026845714152704179099467490748290069577880386838132113302120295663208525961353622027943268224204953370140962865487170883918951212107365454946615232679870313320765329175255953425172395194547656335226062079027419507121852224891188100558977195718491864646517860069806063653771526467939924470496728682547267986974351123549258403153609258399575349001104090494234785073241294198962975604144289469968256100577766777204800017466222281142006249120550148647665479242624367388834833209854814365667865378534735098143370650866521260245312456254824339058506088690778822239364288431281505930913406224095759670548127094912584427144682741143808647805780644818710281395749569901589043979595453517844361123617924825097295269476939592033039601332074797766977872368514505357559485657339903463384039655195354927233588866197221850596495550119697216523947370790063268090988559532902397863010630521261750253603764638626992813371097747376930554821458472012302674037854126380683666487316070562454159720162057430685841395342585747705123894927561161607876809913483708400708483078944042902337363368802421034733543256741319231917633965750140416025492525445686602776784931477359209595985864223024299695589954756298948779279758297922761490643378042538965191808435442021967602863955689975954683023887871714902983222194840387328995926572027001490810759930591107058229766047338319640594232419959720626622591171555502384335065688310374121437625555550618476008544599360484402936736156221049913860638827613970107621927862578206956727856938510321203219648259497368094357473138272902433676793037479091796612151147833404204744217391224459110479884840441781803544582127667060206480387604182445395662259578400646265061154771243641500973490296162831669862744397513673013684944202533875656758912417631261156767966589206716163848874566687554638195528175593637226547463579569465374400334883227019597527646263172218179222004797361902579691395902097330620401548387461347310738135267283879957672265100382366268221613576460825025476032041531431825517522271570152840821228813085701147030332042898043782864611885082588687339083752273393587430989738377497218621337087935710324894537284184410730973991300067887876697285218179505430490467635122785626382269761721039144805406673508012270902844383502874758215572351588247774694623599075780211173446443927472477796952952892422270785806586314053705960371288002471889349818257168115359817214766966396907649038062016700169523518158218682711194423787152441808151140999299554266992690718762470252347726091320402318990087001760694438977703174007738877984560977809771206736835775465701420723901306064307479296918700630165468555394499142465739517207955829294166792820511946754556831169853997944977914357465709613572899196283693253541215914058044678921968189614919484404765806686274229522363293183203015991867103207684427292128925554820574994394318216965823104431717058072315018135716383800177991340036457507153347125813817904059970500923937611437775058813057007863287800856419206687786953201174340153831329935666856632673811324861875576094333361589649927078934785587442707353496333852537057746023506675745344464473204083161117555989112282338114355553844954309270066391190805794828247188611067110709866599554377436983242143429657878674560543089233145227839029105179415237389603903211067802763783207998668186187368092951402268142863033167494162060482804489116620327570385121466231527769975598789952225992434300827179654599539253340845863285713129952530156584660273250219194110356618562380339994724865357536136751241721834083556605033426120916469023213328898546623345565459476885687028239097829251321066292264710830646051195823852297487801414820310959976804955894424454272234256730011506627365456867247241441003305681604131648133927003804978907145722620955893911763204896518349848650188867482733499185591803512838598729047504580849720672217456626026489483442693953705434377775345537094291684554382089173566643379230153787119944166303218116550188280659093889269302607496519506925980131327159965577377358527857325591626407417528659312550708350548793373687699862197608706150795786486982821508637285363920401509475467977177916584361419312576257357263899377195861477671948641466938746597572286642980938075835227449761661098109569306086593577398766897667134094625088558509942876304672409449866333214275025885923274811584414611772359915389548590373600425144435468710098836768132356281893619221915367157741468725788336072633437576883759407564475200013297317094237907442321518469710265693497062173888512871619065579702388447844540486778898852396111990328989982777479429030396477644971578192191876190635318483418244691325889111021217332295158795752071561362899505226933976072608989527344543197965244361085991141307523027671959786205176735030110904762984377040612569071454126192855112567377691093587518193272077412671082550708359230476083105433390111325631770686396966133702900669733718092174539108187749202532908028591284061047090929227964964558581707703622709713461523627877997059071593151166699144872612122558731900030007039946513240421671776659501402589337555765261199940619785488440158091999641902727367051417119156931997153414264612119239750833901107380053534191129653400805761491357389002244270599437977846396075426314525732898733062552798375125492383502900918512488407514487283667203613249256856211669686703729655835280936243066220503730128788846983702825887165408937417845403725928292244479862899438111106712019402016303223777646626251997839767659724421551619543795155904593493941092660238197342889864673932181929511855352367491513259407393374003433379733871927714817220004800946641147818205075282971797486521324522551845152833237191670481389594004763548944970041644367510218353645868336398502787157456352614092646015842816712450960082887468171465907065209560336240355587762872742264783269197661306707165922482314218436170667949452419940718094650831167236886661131368899909200795922446269462161903053998872017286067021014841255404316606549996508009727726698880354705683690206242193368045625732084645212280858168959281531660565092782242586798079548567241906720189742717431085949537737133766638760486654450291222736841958557665017474132746921419413822298624559966996643886683552082796613415167150800884023235500401222180739097506736974471118220954751162947702665622898220661600845847758805086104572409092482285390935914202098973180697644442880964050076767604352581273794657207420257114394218140433348582388407483230882167502996924954394866186017570475369880291897646788295718644102648597516546560855907391303343183523791954918041857804116679980239123722326511710757072178603634495254335064977316482890038367433457138417438972341391117088355943199240373981063440163715244019074462676435216831865121894980983069802580147042644507376573784071129087342841274799697541940179684360487586002026376301679536423800625204567185472693139444598181458915450702861896202782550582214931269389350702311095458327782608103281717412718927481347023553053274403576425578111469698288901516827231666733631323217245075987361922938423575921179660872226695946170675884635467261130858427770646466343180380735045049780411054965462148567557963905813008309871248661689033140905950128680990170132693349193885125411687770176196616706535179676754860057170413296848547070871685564381664234126279584586068569599163802809673464533181029390318598559169864420279613352187150330581493442946769218270284741269257702975468715864169492418716650852062347176195546250561899694893577229813979791473434122283583764917437414549942083716168518930157919931053703937779753933243304275528596413300447080762000182191984135850847835858130105685024130034741794072754683925425743066613556272915334771103413930328942120039682239062761262239940855587805377268747383712880754817567461182325803419399152499303720601869528998557163325125742573371147970329160465405346005690427513546307195707178743021654588367046703557041085852721074427831002967171830485602532874312706769031235338822291359141811723959519084764820758154734519031141016758316411441300443519089357854577792055977590743105605022719066535694575144281065448003360475122996791368488399489189971923202280979528269123458229510490119471811544023082844923813186313580498718664306272514318718155254499535877170638064217146907713134216930616616196250572857008892368979297934029520047159915392106068158471725190495206936029983866073801131061821418447455779747237000033652110493285716260533543565632116143872087555570502231423600577934468413358885629753582630710337088217256993845781061982249043676967972579911543439893462909839028507520519989276844020009705377474500032493481858320388914501428362915434236728218243201393981200914323079224345988443970734678532890870556239072300529509149603114962526595256767316774727163541339732109106608535865200531407995759665961780680073443382796367503370907045858474847033899869334342693928252469654596579062196812780355963695002423458777605897492824358184709318393782520409720621255187075393723682916079822182367813311766573790286704930819522048559098786409604709716424562857889506264899104383382831442803845739530868533975847426355874977957676687600022311914747369752551064432307221368166075987298752623403531452672988074163629880727354439959633989937447262278967855896668312547701112030799608965094572990461073149987982113041251992649652759561869315582846282401100383501597297002366859908708775105444535006403090047681184688651868176876390052075287601098438425965481122495966477728056735467737393146750655798256788406538994473568511172357489595860221158256899705184252627645033414886531741814792454339473684105724298016851097910881861257594187226751384092159838551298653899108602164946390621060299964101419947566577671119463274021287081831911812986675420905221579966544473986736543402158449511276228293512966897470707627134483846417060810969889575893046958240483589893449601541839951881929326086027164177295211956328113913990096492587764377468250059027865123775377125816616212855936960326866999984020667033953857520112786999277565915070612059346772963670817204422711937558287371824081434816122076668183194437639196558097339687063611664501745546977171503270769590411120120495671081167451184832926033994974987227171923465091982592030016380421226578029359324062255519970945962998889067047274367074386756939760962095922926084698403639011062071079843036901905462474338730264281791524027057160217213746249956272539608400214290107605752768888070108961144165112485655810329528083984828890354571240145165628874159123740015685943079762139999366747804985961499681852386870811285136747412370880345444770677271722057441295051627091878322544677387141602115641672353199763663634433324641405683318057487396766434044661794626164153827204558516082184487704611177349351688844074180069330680744890070363811228654830162833939665104551264889477121911714853784909655101237220930532671996522793034365399069208977798289725362502838721752369362828188437381924321480383993366837704370941608525166015743811176681149785457154632400453783421527256974788630105543331648440213218586342921581890924605391998846945241375501842977783957280399538150695528187515192255647185798032346149353387589021036651755598410463054925162530037394229418617713879448346144413277320820784841678006678488443408433390423532313481560177792387336782037281182922363345816729922357741402588819048934290054187166179344413475187721049337288317881313623807490168588042869373783555439300731613009003742615457248279944899363578256514716782003171073518760886665024650591096549584407956364368509037333072943165673025340502550082547905480125134325230105378467127987444459893199283090940162555051934713185792994890556554409805082554120425758364857125610591516285371272962474928625278632910688230589200091238040097647917551427566231616788413686920504812553122383807186067547480639325940734489465353688077621692512752493714240446103768813114450731642899255491182718129350315719572799659886237142110621152355517793951294313077620878689277428687463117800746350757014958743848331463747449970098412195098963433125289972399636187963470860867049874039731579127648470240353521537129384518152832832204756995196187231921100239955510458193881806317357216879556050128334556936025329729744314906431989500566246233138565124316692423514801750324760844011448993142340050147179721694765525504595531561159624546257516532887580437871920504636694965507760255786149642706164280676917019307953553860222625293849439216175197820877418645106035696473126818515726791539877763191642839727821123905095361241518455329179337235677479067696746659342485785105897629835918421354627513007780114840035666672268571348413945072036409000571058327262527987399487206927626513192155040806538138961702968201961173374741167780612598181819173589194989963046060306962220839779013029569380166156885753417472862320516474233221274744848189285728886520882605638735962084009612604228752176788429971426982698667052901198546091159514441752633247125283386691995354152291553650423281152029218985242107556849697691264493072292972760298507190343933805282572697822635580593635390716516466387182226731577514613714089545114265978587513597399475686756661948651089439546886613864487076546468133130306793123966003711772448748455866813200422923156405175880528944949906398447217446576863622973723650189050456245613717489361841132402319791753810767032800267549229921380230528164095937495369359998021968427689233812068186077636884628745757996220888726183952289680349046738833239997125869312412639289596168586460589799624849929237515794384138967695993499438822766631248315330582594319320442228190523104271164687510217324507021314500428688345980336576642226117548877514262520472738192237632044599870846658416724341582366657065002057806544959938059704454948312353743821126019466162875855353207537448909438025784161278955872355475226328448492589490574202499096500817524794086821849852181498623302590845725305200722262005951113174747323035858690665215384284382429739576558206503889143430399510585855606299721347985456010127036897425811397055955133979577827747557813913562604724903894512646490561695009352889927265208455731195015284494371085318122908672545539653443921746420597787919931335669583117449911493351751864553298141875668097440507055681312587546846099340755188721606339984454051916793183268757851099423244675919988450746316782232938519508647455450300114162217453880941514693319907956507771661419342608044083627426737466556120570556611843535493856987842394540422243561773860248184265227936775608543834281748679522988926822151768925616562103432298061636807715470421669695447368694534056674932060463956986843768680759311054202583884772074383493973949601799886254413178225583404914179202976006183583450801143322308831192942562849936011956757191927779474117488795810588093714096728873431116090158097990138902071540740721517942101807894393011502002397350092481624154747987521053089931055835069409395572631515207607571278185574887785541861837682104858547960337971564271744229468108246268878239782283217000412913978491419244989131796013688081082558467892968391642787662422094724310711850036493921507831645878388566210322034705207701676611896574107604610600112133323931054216676263724781231467425260748136201073901930681036703214301010433666254348612655822730513313465569208199357416580792088225194683892300285253535934813286542798039387491995480116655593916391630576318342462952384573412048148846106931332670639718238360526676328834199739764740639674437643866712376072231193840167745384418354234128428029772867262058458858798812274780644847448320923084638749950426721729383449657570200504940797241464837972968011471121627657248265724779386806792558096411454499310286854632778513684080163554384127092376095606695689564064295994479881969712811284583774864463795971242904652778272278462378260053615889607240176746865863326320068164120452808664939762125932708418999139291349928000135831399644299361948188731323034908677823329630233077418326887383813135195088104919389576768334581798096757311357741865524108633911967159790383024791868621626358388468700426528463764527667888471802085562394411283588769564148518957835754037056334666891206575770816778372643878144958923346913890196949193912152658854623284645940155309136685679243805695294873039563373778191522071884802496731144082018642335708124190657067004517243572700581479943378974232973376698427466773762397354564784588189796716605722378723813613572601166902337450445922063177378865102108703061324723936740506675741221491080085302699332993377865324594657207572637744700427360780654737064401651353301778476780373903735277126916339591245131533753118293521906353735512814704319830706551789651191313019396287782577267223677128679175935804558179257695077153314573804566559840467194343088580478424018388999816573268465951942593763251055055651057427351819618730284954800326033716623316932219707687420048835961574157146709797327641347188933311268113833264248370066085494281837048076886378826427217321221906531260502909280334087024668682361091061260385010406424225485106660381654185565718908713316447144097942503883177022289935987280759377824593769088516975097406697681219327041037280946265519378584639518577811178916276944342908459313663535279188300686308188541674697030715059540588083595378375488499802217169748517982072622390774569933568564490179803767727867255509980280791743235678356021901096382184728838398573241539138155371086293354534929495204821389842410534291504637840339876620674308625436354293060065443097723443755878068878626531242881912962298106656045245116036601547544870580348271644455568808796018104781877813916643661997435350982812373178691722309086657631223253541780061870305645976762652830574880198157733811642083697510439654972869881759229701664741607087538436916675102457765320761523444265192545729000555686377782227551382123867589880496411709271560892282129831512300118503007723467530522452417789421838232885252090977570299591582313729566074285132238472490831867727252061258293777686122667816760250747154974207846454590934799949128792418001448408647801520134658235737138478301212403315948932033173815889399093864122174774889694146108851550916880676864714314779875119666896385135793475936513243919811887903040240766177663467504152050990611641511387937969569646087290692978918983824896059891900538979746202339320421407443826023023783889189573563417690042103195702659033600648008061938607060297658943265206970236230083850350505664391255517123111456061432374643563067460048589552956836242433654437806004413384968084822777616795870881960737566163859134131214836229019055135724995906882022168397491767822989797919738846914207171875969342096375097191922841311367957077709468334959916736942798979662540698167568267566847112120309080465315336503348856202296251830047998915770875969226643498113224375080498289129133027524651066790463956151203313976879381870642458791747825884891042391088840248098001803242589265217696631077694727799865698923389249857329404934656956079778843108625061378847453721147984974572444416767735348695419813384895794068615388937144128867837177063488569740843333510656783281073855198888603885162547217313103909166078194966691085614728018986532773652880246453532868312801270668253630543221597644991366869109477333622827582508573671096660151320934063147269196131223730652345750369036775735535195382684676659948860149051851734930698285837392720330394232287999246430806741440346558535653387008227243331181797248170356659246499335251448895493131372484039078120294479914150641834163537004804758538403845906818137993734661259038010542172347462438996571756611983931400621579018116128434366998882058505456864519840392144383534590830003201312071181626994844671943825258688762356177118935992547211340970354395371914948159894661678085578360756622097723301671724411286641928777578570688931731189355138080385255218928970048135213671235487045209973454409868516958110559713535789245466950642740586137511395715032234785534701411830812649013975161778189642175898573527423913242015973054501454368258710999631700626880477914492705424944835048180727600001883413420417956785727480187760946832218110863023965398668470054080207419969217769355531458531915815811539479593887252025282386472810128540886323837568528657659396532491400596713042844712166719050198988680818431450464579099916817056510315887636146778596704870905605168884813375424077819473132404776934431272550236923456709942671329840889693756550803005034749083386315425766877484484440671110491543956110019864234028943399927866839484402791851642083390471808320212535670182920059263523270378862525204565167585349146116355477952164114920116113651950772852475772238403598760845671202778002251729424734649856545698366842811260282546933344955142955797540825911415863866536326865030501804416432126432904470733829730362137735479251967829643422526257545087258591007752852689828277485869707563825932540038230593160799106670840436433109161137609584725315748876292235580954658925743594432697849482659050560484597915755150852774803333356257337223625485676958056407416263796923412953517656072639278853971608140650235221879020161912199655321871799445621437876681132441713635536674548197725937445482525910531609905766189005756936009838328987053560138169390222260690393734620617764314659955704910340718119115090590325823707163970403872871978372830942065287546707743526845556255272418463409079602251888687778711873548701463657848361800347765363459023019256477709143312053837208994437863234348241918368296766433810468515780927713088185061812074237896968627865423502774343922864532483088598391889021097222125536246598485045718791449646184487813422484761835959557174422199742754214307495279235965990728006301307848304726634156579368804012024830829376775404127978991296595996270820320414504641481721840268417194267308491031815244666915449421343746055750433402166754495087813331548078274971601701900641330588287839453331764305025812024061724227119636895873249058500916558967592845314816351713928688499650257191956996459426893675381259550404438752913458924975815565342852253914573688141910456731051738285635202633209383059362986891478331709952459674507627099935457874420470857022949673531026645935654586134890419188943775323155279083929527938289135813217447777666530005610698948296232820942799048385083661093740285056368540770646462935836898134457603029925575010625661837356170463920649074627658528844366062460366015778111446008564952159872298071586487608753698573173621212550312967868319242652509026848531340929693133430964610998595019423844362687802466374318398244284448335791911192788197023307139142042992067097155911030434499090329031767129908452447311366164199200456086131526779925284597195301346823084935790242502891495047017559630124446224227081342912486669821667806766110860714090565670194553973039747959266489841799439573287889337752292355631197208518370275079047612070823410075707435017152740322955468341449859219097689999313011565401239601840166138837524659095948277916456975770240176354995686471035065988341852042557979742346849162942356061724579688293552455077652526267770916114278348018221382300344162664618948047019822032086759012973283166914768002839325475904975688643558313859929809620110665994624180993492162580730689098937810793572665277428621002254399261739904391071661743022356652588573926414521258512964885506454169399396341388413494158945054685787958341881121092573354704545897758897333178277366281510764842891217160462544346895910115106241676639992243245925277213272258305319061454697523071642869784856493792303272785860937981255012119145599437943664978662082366570014175373410100360008305268358453854320430716671608529769862984493903366312354846320488353555320565138737728411538012290811661914374907831380664715682097312761690601341224494765394167176695801953261606795881402122411446492207576445619298824157949414944879938559884965234922397198418416444124672596167156208462320494445276818133535019411452444493302376351476597944362836457133824440735870645582311751336472273291923379635251637018202646478593395019255789984674296423315267166802658425782886569953217747122077287719706376844419806658970278826632676446591907221892934792397360097016822862018120438412995198388816394693392990232843140772556210991854785668379018939792450591263432175948054338266978255629488295753586947323175035222767416581133346510430790579958826496692176555966058487629925257415347291171389631782042039031511481490602365375807750009131606829095599233516229211436068050430775213991528409823718165232338823182734265462583420849023231831223918078426905257665897936019868876471862156530834725232074928157890140374098034645771972755155186375354184158164119583582953617896803366750489049806717787182116751608812951875826754484925588809824582984763646627848680195508376541011687678900029039420621660957837155399483932029765662578457775074736189768714384860542795534198723983757829047035108954177590142066178414569453945379661423974108370904510762912587217537113582781552354947882694552824569849184889801072912930461479829991557901028199326231504659627610760782325405977376216498177152112520020485074002675698931958770293548430346234570910092019947667998839894896222444388904901539044189219723075803656302275965932554549424453363076213709627207012321353344585548043670180173593318605481625138202326118619239871864025244073443439089271137806220821931369100070052203370743556234847961323765909070956171099973463399599071438736632056788617059183908214838660952163982310551008817873432861129888039921051522629785177559576581189417580008437878343648515766380639270645530546551933352284156152378104372402419138315723112366271168291451613743293056244028671268924013081735670966428233012542360182038866438537333895554888444821501394896387372847066148238453376040021601852091604329433147953333354371272363972417617190663323368519651771199715398182136954409948194075305191336928860151858950238529569955986761252932613091861357084543905224350599679182665435015144639131119816200615076834619196559635552460011070888517729107664588492779395315783690167512268661592430845702692841979960347662894128045928087812807197795949653452250698922861218200830703654268603741555974467235188101647738300511053957937952810899223714068597378725455837919104245414888768173905675241193012546609943463743026098740639396476640894965948209620331615168785376199507078622706498895061757196764403290469179625300386209379911960634357171274227696911016416859682043531016664320227856129133323904965725646885905295360770717593101796597426528720015163633772404837004945705612948935081872042515477658454995493165288218711747724292268008093168968371456990158471211595378812671841838785691466807735502319234090171942192384181875200021310365826761835028829473076832460940509287570180181300384979266914544046802776450849806078934645578844111365444942554980719142197867150677312037681671698319676034257949990854718763548811627040347363092794963698648188742898739499944416609546166417773222262883029333855866333485940727245316576394223316489692953763272408552376693557552133362473543390395471196622961124410414678875981514057237830724853969984425216584963630421580327887761210627569739921520832653639507272323740586082744842342315911467070085194138335945036876973898910123065032392732036920983645322200129205731657066143725675140951907075903561973491870169802695942979945268634933957749330751528640189833713519028164912376510954119342990691423224885784164259427882672857869273999073929526384885427455565467077129676817979781512376004464623418882071144466299310894574757146850814196108777027633174806700842245655936089465622844375554193460044817224905358646295338352444707930368745245128645709426498863031019760808643761531690680178053866538693747078109429109131309796041976518093589288645672964293807742173553426085648895190381925445006572168883232325240966931332977777375960599928933716491878404647981925736991317129485428623589544610660176517243144724272909767861232848855111957186166909062937420069493652481772097004905838082394809989787224479781333326969315624017611595088923450481773540889462346361873751468176634511467776860714259833712671140339767567612515784053690406058297709840560524972465675827448011958616285963694281701332459984802054655251828273693879812870901032384890234407489849633733169541946918614049013219066863233952040508277718500075344509056125937633707249000384957190246855639471336273819101515854114809148683001447999714269248248311613485145939371628100954926863426813961983839746555528463740294991386631183347413862799395282377262905922483065164934399234247372091061702444218850911962494409003066679717666444464994520494592711177001683603973491157983079827119811026580755890393766350122536502534153380403754026115571229012755803145474975532447971570897678675584185745206080402793928627371421213906785518040920140146775171158032738207587106749223656860719137600384292596235915890773299185456901335436156520612794145520626160848262253632788129704925242808116305198166374523031429568400272072999114269070997830369265426508951886229509662914793494804256685873233087800351910762440086700584662525088514587207694167978631393499394866509012804110273782085055748625505766038740309789212382183718508770771935719066800105458987319366898598080354044189844032905166069888715722989521020711225689847227193844463226701963550904479239917960012228569887286492792421780625431163943014917745237412395567379220052157300103319226906006747036802134308591583306302290947947895246697839874492617034310931090031886806201114018672423402098662035878054556425280505591647203251956132510511003336125568765983971181350541787881132256628776924332111158111236444276357447584411727230435607012708882598561391369866287571664580191856069440931639446749367624435182984032364772024896711123107462608222370329003040206121210953708251310277588146136677229417232172712227142841663162764804577937492064921099114095936463315025202600484669405563973321241691858038828623015973861504294890645049180764709124502969105280205205780218685733651770360724960658442483796565787779381533766661405680209215444375156407852137799844977705048118094416214282716109605932418128612082731868232118551308850651190896976115180338523052547623959806113391666447297022270570574944466419159791560336042829609878958020150718269520966883356133409930197110810384429574619953589024878590011822741384603256249555397258029992442326537638957168708024342209768513338727681758733101374290871361486222355830046856959300058861833272191629378708088146414792325981040880793396462339892182675621591837940690816139509121110516359556129155916869594557507087799851564709689235276634505723036187144755878043166039704841538283935898846516163353476227743793320087542033959983408314241024475772442570526339521654861401199356367751347101689674008717275434342727261338611286886824783437940485820293528828794072605930568248359911517863295536559461851722842673350722806532615447501323295653205537640008415335899296884195122902547883014345847156240692652850211296945891302436308701144214162810164573443551242155337768359935344225974350377637563516042404436884618945146324135649420358130321785497945404696372366300851271170541777666497257360933921051184950241004179422800550732644290036186181601165260092633264348806239740023438395928852790517511447988578632598926035458418344467732840495869811016732280135948965181335570317661615146140651851680946148558595653415349990991187926497760657148828437137502926368972286543704818977104750763170628811371859254813264765290717366677884956959264527613859168572761668524770870304284947363803256309015901165289708416574303203908372802309479692891422575581693401524589756408178829104364938244080521915101374626669575160790471411795490998854935689712921423075293515051352948318297099630631803836006148755090362876811044522241727202368225751556417090549421229951520853426477357990280197559557093797888435874222542938172025051691778544207312919691118669248693379305063499360309754020758386778727850949804186690333914445604474889904230938797414084185087138635434059921997818205383554215598320997416913329500174592086778809420425721460325009295998129051674975530253531424615190861211484616161256724444431532279312127212265983484751817304021621189511761417629777243643802518662509230142062264699912252373176945039777990421237875236377797254385432309012719684168240049108329902810543919789493578898065505514389224862383053067503433109487306033479042278675655276327701165184743050903405894175072038868423377601701679399002283236956553481823602019992693913343330129884187087640756615962990175185125559681600861891402856569317945849289095091377814444852132106142073841259361169558182536705701983678431561959003784399214757146350433188953718538461400529899733958273995330028682225822692429468857134708381169572150516322345834216249826978178760145324993379478181924759744171534194810463743071393693144011605052540862238960985992106780521577608593748388125744244165062144586564225066200252872927016106724681599430289778685589308481481273031563333279465719405790541028755238946563876377095773641090001634829201806551122732866952919380983373324221426529685940959702332731539605368827606736955657354614298367669792863753810082155605985333503252630212278786461637579209975844530250782572014239564505772949044451181711876697840629673222096512941435342140122559082811143242791566707903727690018905384595264420138661218820898201591638852287345644025555819751807157877036347971303785105467599138726412491356311481563714152954914423674352101052873210886032521144668603341373744091396888936638980512126080572677922818873729926364398713721069563583794575102699210530794037480319928512652327708644904366037317615913199538996078435972584737240095135260901712012992621183034239493800237482038255028764677805514070174906044120732842158462118482802755632437616340335616079980526841434808904107792504558025547877571049348816728719233318766161386965142920903236038536052886773169046986042280219903649477383435776207600317309929207575907974067773964051604147537298674445470206121076095126569003451156771343894186500512150074738275731530380504404894672856157933135298627640207147902298027567661956341131776489523244640298089264200679027262435817747315395806467940974533931506044502898567191770001073558570946955066523519357155863398489305772990652403626090327083308911687586285810347857951087344352504597896921577109393762336020273006327994754489812549055413690327274550616860637809689840139527989288398406627633240126149613373043751875938877616801406877941905835108647930305754482513909616739802396105932546146531186592909815677830641243633331893440152360285766092819160292887874625085651216168473238271419993797599399590186239962203674077085271985248172363817370558404852334451860401369885627303199096175615358559722839376200024210213701373471596059683361728768653524388546465348030638898906964492387821382264656737652000948395867818863682604319922645884014969201714392921026140849405060891956244248066065937968411166790370889771094552740713710669158146528562127448428653532584600825670030939840465107236406951408916734466998218212866563548330798556071842856173948284172708723680580214403459451891695607776468842987423832507327100490666584129937890322626981330065448275096490244876524744146659349171221240716178804153697894944106849210727026289462239998027748761981001761833612719191824564843724193800453364117511970683462067202487411628958279048300220832155936524011715777240692312627147985816463534372836043939145316162204361941243734535959615133098422276661820497524550907456044369005725989865597063798657028510253243034265567627772229796038542017547418717901673210438671214985066849481349863071279168717285410342009387076157951068120706588093864019268724729355575983430728160542323217019036433056836756640947753096569191024022562719450516607121541575912780888043403439054980916010946347970912650323580520896766524333001967971808647895795928749588068811592687552465692145199588792747779362207073621421295359139865846814058118325380767959962693509029381140233460224800855832421822084238532398445602739592814512935425003138995112369224054148662155371003412738025797835080311699873950041381820884443002395076601567023494970753700155252812603948006912696913430026547818742541664287976598523725927731112334714069583907194619577623692722138832400797899074189570893383597269550831348271885629448911200632599944425000019876843152457411320976835598240458524096054659022738323086058698842680736979553223601107822360914082250172583638369995705752953132881853644328821313313780727198444543358135440854582753983118596791369976805644566252297753574369074864092747336807381811653590270058891365204141186624055719183846181679758013346881680099193713125796057781848302962462621101022860843510678145557150657399398477142896255948133549972757516802948230371664698978163864656021240794169102051503688077630141414980414859663038612566490186456771631265860621338132833955808055537105969114609190120401141975626165156446707749993285360690722649331755569382213240824852155698811735939703548817042544626837463138903398306510089823692503347293138614221764818364362643444895723272100025297207968137890788960497829765481720261755558596888558826965948455632894638122260296626826923991151465698715577893086378473966603598032027412974836929008133777972399194847365566751810829000706977099582625286813130891270438078655701575571026454691277981151977399527032302309735069262518097049971065280645078500923827372885792598285350708552196226651131124197160602003998544734010748763998384628988044124733259753004685334685310114296340655180233716635217732417573665281064128200686558057202886086583771088793394501153212855375053378514171204613602337037673028466365862732654545162841975168517916278402925739655640647196478140437446035030509125300442860407880557747918386896288129439570059493714450676208068048813734038048296113320843559222950022721539103402078051472791040339913017546518694127303061771574219020366123426503169661064237084401552846585703375129214222091791884855665388026880011139958803915575896293056665464590327656613029709263205782178699814370398605975790614533698841121192179191053588969682457231270151310988071625632148235854762422482037875180663954256355534474450269373352911407515398503970109329899195908474879204249139370734719161756808132082540616840818613455321972181272401657590155774040607250116022562692561862300580982853867763425143335793783101721790915605944100897764317785222665402700028786858456850870198325932857739851864833511926168378841115292123285883648592780910891531182601099153544623821109689014217046719326032631298547385831877753380048229692992116451512350107934151924045821877053035010784083951006074654672574003105901452560626616958120650955750607958503675045330257190995405750301355079729197182034610281189087735951144649000020658162830902312431032093260527460864108960740488468122388394575891103214943430016584403768640857210826526686640791615907389882929329826277258492530538184737039365577933912394847131106639129720067631358756960465464084175548821709961263118246783418479922793247564683795116698094964606969955624918661379370403579717032173325321413180615553319720291380775094673536690100670901232307611184109873301000221449490271714692085146162602579353030238855037106006010936530053569566264537706203426670515073414190931402290114454171402857785238326470092005275154068273766801819870357652472214193784798900339450092926215786853772493900353234345423732668339661618561053386730702201836920380183121191797286014094566783623246997792572333471211534453806376828701295487262477396826011003722682675211240611215292551506704266673233817130503233537405887207561564757111942553184810789335148736007208636276016615317570675038916052642136932425180942104517319924892061946441999402058776052232906616242129286551323832322919920355282312169166331687255748614729477181459842454841560491970371317344157632639749551186734291210237775058003689444720572803679384502749032650853003369881241081938871179572760116149041270662433260043002341137590068959818287032233935437423108034181408440973609826667491762608822682155615637899585471966844785786285448695835282251370932315074081949389598716846367354839892197979943370140305038524064941103088115287130520376064300087748570003402376686708851440753218000027631987492725866435063603714580326132728355465718613200935604127301502440830635640137496706693301480244010526254951193237132251783217083522558945029382022542032668206575845842004741493378935151288771160535373633328469296936776926173310556322996589962146529698654535968095920269673436521227799570063746653946164052021430165318186197197280797320428109049637188459125219335211141137419375406133619590429856218044121438568869524204898105727530427772932954248020829170651377691264723638268752665293272403944772774092013098091698224980032998929940730660066422306159208000610223802189547726311379616307480193638849193193148723745099401031299591330753763553195507184233639981787279577963500726205007217995579468207438495425177873626740375005791638303371271737329430488094497875279795261369140069596319790564629393088005180533411274140959527406470734054087927397380024405142736152022747871003966414965198017355929512440079541308146538798647698035821720041506467792525663683496314774383655004554527067516018225542101354025865697492376246181172597675265410333490986899018429807591408519605773287807381319126098599205351785296196968955171611308417626592429295610119188790828100106273872784774252167817218831914337934343024270354513396375956907289993383687756535754363244503454595152522981670257267127365751726321413222833142647644865527685040944022925450157084002082719924373566738927330468676795598110384198610085635811260539687214016511440654343431057649195457218973006316348439757952965892728949530725643695684993708553009202448455331941688264669652431958735110546237908439866046765631889145156512516840962448634665239140368629405605417465567345217128544585369821855653538149310443569763492523957004139022184329128011758159189036863682755602164183687289071128501664402371762649648012751822028196119605588749165229924662586156668750867932345859077514256020730461207769591714598802769599712797276256399887350931395598457580705247824877076039277899694342685226468518284798797796340054430816904973418246084083543832718028945151968129003244084883219667369783688995912655321119833480105185937060355799366969775029275129874328284404856000903582009905904199832995547146020036564411277948014539077166789174537596891308211210790837576960243790806858106772913990135491442649502877448610225313305917447058195629881283141256256850588611962357561462825031696393166244646425534694030206395683911901239831021775319945137715557940806481100926261328760507878405480400000106569819577941569906410714182093280874679275717850419972050825764331169202374119625005917299206850001552913274262546349751614252010254014063520292851615160834160012179466416750401473535777985070573622466467748646259322553730679807224921042426077899799597413458991097506452871138093731887970118401524017275196034780082471789972324600032023272254486274401412478902094218830994369864445401822166337173717875308349250987567133678686005825432347372112694352145710820858617882835455722762762905581608042346389502992038064861756155920548487287641973092287188250355792005033728236595036847350508492466661496876412721701762985767807989814879473436709068583663021492151524739445327258581073260111831095953265647398254617392130302817617274004130564262909569717689255991430630471623314607656996286919794179949975561097585957434210017299547460138564389942664579073553665738505299538988931562701632948701265622416821219411235737226327211622879144473199419406202210782098203683055338847732764458845738640333323905940390406988064508303095998493809582534832585852461896894350777751166032234512954071513304785220609756604983992129462026834046672826165395469121590305534866150495844779821501418552844402236860205233485708160541056819182368447336516335883486355794814216492484649546962300505594206014817494383906763455368532094567269669951135813205192214205376881220457961911748010703541650346419240481092759037085242215156605959443932982363684398190118445575853185127028563448882924170140946575719663962289180292763984963616923964803072001871071101560157113167381722915252909103340514336247887711640048395206518610856616039823814976772854542470926278786497739609689036023325387089929443804965878140520365007662876027284771266103988535563292994022288232477582855542387181777515155068319011605184634312206418966172185217119019424124492356482743082580717598103488572493308323149376734061726577745578879012802619582232230853082590133981403109958623963645333240636658942532109351770711099440749150969838059727982917904095059203363219467893231528522180502334253387565888141216781800611962921422472016553989464870906931011190497118283283518502613834402521630284750644389668538444533899367996861568306970806825396937115104205694402944043779299196935917769955868640068330220806287850024198801487565314506059494122188439861430590701471564551003352989967651534379967164839038810125160566582564752233155742935202354447155123047946182397242478214122712693841593986469906558526145862338617190144149669237577757991335167298892540302979688717497043311574743749832204731179840506082197547348589793889740637260141756269405889286904083223067415092886243310792994448168037149254747033637957262626022188675146702151446549218406413615246113808420245666917357300689260683106766181480728603067521720926171435074956876643779425034474413367424357646372496170678388878391804805071745382518840109853987078115447167739577547753852385141990499208765569159817450059458530525584385983008372063779799584465427708126534057635346194625897061809879722976551164045315536811082130618641966733077384848124813341348302399467247190004870233437293348987096384841545392753816941342570939909953896106121989940146649135227884043669574565316412472181275684857066685682167495384258753359375912126324496120811423535283978259780756309042600189526169894576235636593297565797086993804485216157423988569519693249832780609709276428523956850381872338728947112977321890686380918636522167763459548175908919623558991475086299561107605917019630000765248198810411810152108319633517367898489089532588775186945334323835835601503814090781605904100521363669790044203352584191622654671988210250184886216609132788135584039700807202938742040079649504833761051636122457833175436262975176682423821837789492313002903046800666435722899232227346002357472747093580335123084009771256100813401801964164518825412984203124380240852201826782725285326307631829549974268810287243742948410745967459372345699472818059652472047881363375562389155910185289209284777336330148041183469089736372514021299942447598660873961979932567244219780523513342961425260249489597279309963700299550309340448231606294811824046448236870424581912563376074299603660038802386125181068126034261141529704714135781250152377160793314572787033390031383807970089823460192588844120879676517009554924388112088627058764336419754368052637488975258148894999315863159414534234487617202831710024379792188813488889670769950341401831179111233368258929033132193555684204506761845867993084041355536284584999270371534083441553745798374176148578604329904128213025029954946175721182085393965717472246190307136124488872656188179897037155653311731340893672477955295179755421790487506620393157302861914719072354158763968028051517254973323767398060013481741241410714766900798356026415170291478305757763539903052661591432287691547429818982847477746804538959862249057018556101603771053340292665930960940893782620583892131396765047014614893796254098064757707874947024315281220838533132262977407960546715692218308383499649823785084195272359290302782866054588282545634703099886265454028741869975859654156266453923753479801454123129434193473261898955731463096273692769509678590746534915431176120213484261313431567292713225792432994596682537447233501372824770577421239788338299097174081655260216250159164881218929458128486189501714389040344925043615907938103219338676396300043160826743412917578831270485187860596442231505335634398446119420210644264696389556962587698904796412161354476193483929403040364122771622279117977209629862430945656536855543202382463265923312790970759246620087615801018834303104855484137660016513058679849381957889492824499092332908823151142130623947205656679956738308127693009363232679635450818579982709406318819764707003747990945353157157360628788496320471197996304692560965862784252911227970889154137146578108872331986302549117167637220555930811892849088517710024674440107764684407355986702781653015084967040903860352552815401300155652204806675890026497449467337686551856746548823068303193531124071682240699085989275752291162305758585346144748044589398609038290268425049962022426235244797704619380282337102278400643605669477285357513966208870741934694757637862474720970249657479544601394912152247771435822890040677704462778658683105245467932479467027979285520498457457699758571883349304382884876681322986009276780671945743860720641273462072967762827033833567813249876098593299840741685212547409397699986495448767930802835218524579604167723412583779475605325450125145711527075389512038586369890959092166871007436640316969723261789076117895698622063468201643014238991879489068599824703434636789727791735501325591136436058008248417567037137347430333801702494194265208720413266259440556260481071365766009588725143350996217664189610072386208948781561829265785069512095446774792114238157429854327382821005792051371327903730831820755247480449196864168260433527528200936194135848798881455372393774238573054354991621967610759044416406209055302787827349606966248921821390284334215719932603825761469674950289262551415824084689547595929351366410086134761058213477290163764450837142529206418787609104279437760912932349227210173435221997145425407932152788500807409862046600876928258647068482965739844239107658697511411777430407514271253633313784150959362694445419003661913145197535726397538390213927094978706251757340599995384749000593930820277650641757651042348732947732103890204445266323967649397307048039442625109921309725806233853838761752769193556257025558906144951090824790232938848304825159982319907868508798513386897675924797497605646054572839607687011589311216871102323498885588559707876608099886239032754479960730677800245738913680993151796502728536787958484713092081580979874397652347211366362760446843144040905016250393912464720055207804812814161954618526411824308505054932476802992528475233766261692634873839023923738396743350896151687896448658695856937004538121700083759136890844982354752803057993153283173149040823870924742787668977114360963771789200504375378357170659284001268836219298281700341966492996219274036008883240440959627359786400290426924016329010254781397439212868369882940088744442482807118466645614485038984942878175019625492637496312284767561593304639062319008818753283273029864051251259320335853492801648064666712301222677593989249849680925202310214655815300454422364721581182416779880165926878418398342524094079642586223610221208041704035908480907884615991084085941775521841306907787095938433612890201097011292100059623021137482801220889781173077342048758043695953250192121752967608105675956206881284426062386255814148326714180636493792129429108066557272629998911365054492844861151635297680326008916943304685662654397179171523042746540761309460959775414966081787139435136334574631770991734177119924024992823765468959634154325361526647490252725012062910154103345441455566534008646312494749011277995850918742686931110197542835536863810384426060286460440671777289785692166372202568656386820321927384768644429881604388167414195639839849899953003375655181679100899366042989027800696958961791552458463921888897086800270060712146660991962458226452266744273546948174234803672929281420426489542661750655118163516208800453359984850384213199228200918072253850413598058844832779823930967008522577163146539548708594694733937786432232779115134305153328592242866584211189634046675442095093976189697880316255410475104451724747560574811833534808798352570272829866292006753647897218318163325682251716380881605326558304235234228983737453974477169778857679823863612684621425972219012660760453969610403654309615329487495601745357745584698460413708565927755604935787965547337362986676393056056586461605832567012247894141545737046919496155092229590805998480862031446108122307285978396776698033744370598736314224603411795656773068428394902195892624477635103627944926971385680830872274475383873338451919403398196651540502786947236850792141356561320994355677562474793666828410140606639056925090583608940211305422695659750969568243608745795102174173792537065768834049916388948327936718224658862449543520811739087816244574115825958227129078635707356500866441953530511851633484776056539312455499747218041573609034090075605878147941687661852056358361021400901535935169686341705047001255697263570225720190791864930624306640189532112502116204813729324919730157755107793763874627491257159731854559016699849358846558840223716188496866450353167380929330681157227365372082384828701207141258567388112023604580993610992386446469377158466026113181770748795017317517967931023709916572347588896490410462150346562844280012940739401673516749857374083179823557682485563535780555320897055682722908405058376051278212445651420384125244341738116083571304636884617473327167567167003509503029023883417593175640290094382906258089245044084893057911040548101571540612924979854979730559017975276827857416602856933788106893073495450070937940133456893013237573451362926300423616691040414455268543883121946400886315966755532026226374432152995600101820559271441829619062310343647252368037827209861361345393355445865347311017057622746057169478889899296393230915564641746449185513477208494614884908627361706836377084807265769803352747778438941564607650732884134349362344420287250346172270364208064903443017132270340066915505057283940100311024795945919052152309379802846174680987635662656284018342965401267996357041328216072910713222964123941485435235643096445551794798683034910422504136503110224030483216760963379552404611230773391277284820197836463350455103177284221630121040573257400854213174884143047376203108038365024803990574099447244476715854341397635863453380479687383384257166280390106354632394780937381582964229435675911639792901172001937802371891858607947990502170540347025956067178053457314089568104965129350923232536132382755436637873508525969108554066138413931892707250806619438297185548527876531472799842510735868337489222576884279300762351730662490564000712488945938786414902945300113677211506611502781048197490089447262137400459753089902343641366923699549551828274763257300356379339400210120441912218444435527636782386853684192359016800902765879846542047178346648556252382034113949108440003371005560284760160010495391931453357777680934138352239868827226179034274195731481039431528580245748446758131661701099802187187909668451301758357160177622561289380336316876932031115410743362055725586144524080290901417707946145004071725314502885219250807682967919036124555014816440730728420891318824873912566710853075154922309276935072140368283551995613228347463479748926265844544193108632356608773589637823588650445803060137970947425202941877571142088048208243748955057928442333783073349165552905969969584603690748249999361714281270729891439815376664692543792693035429540932465590659084226474879092484638163570201200303313246398685115708329780717412027853704029257361268480066511485487633026741665661838174880925415871761052613206685250078340064101545716446095309662745480571024845708547658283889841901383847447031634480245876136212693785159408740902850804328598460300270365514592250518157791067650062206049989081660465327585141320775791997247860962632811295965161797825597322757123084376449609810575272074603756940077650166928567435968899784123070980807824312284640874129845198871154022601276559989824440996126722326100503276168186702787040454067130394773435478342568760919058549770715998580116839826481019200467552771948925699942707012412266651298173512929616605975018651052494533817783256419655268239094079539795592307842355637704259486485849160987853007108231248610919886467265592678333769050203303647995559768256048058013831461028420728349109868807144041218796190290952215691927612386054710526040180540781444098231953824221753610008012989451469096353598412673433478538289630547969463232999893221340999198759955789561718686200560656544930637080618912478738085582233614860083846205956588403651251870843938420247665077443552518418794622462289062307489525184349272835112694526589069221168905354118329624066746011584988483270641474760331309962060122940076035911652309872859438101075453364168256545740383485991494397651209003711461245897962445038406629202547018958026355177033519843667574366945720831681516052325657729141564636368724211939901439126307691218698402111985090820228417242472384193468477812396908554107720182863040189916294599766855848898446536480045781992967242493339305941665883774734536306330632390295971408377215858623520023388553411724455216415736301451890625074864933072288794012132320329572460486112348244117353924380933555764163738839374732201855435644307705295914854216957882130911951625414638720210391648604473979079391706184309610396340364517373152178696631928764781792619431745546356475580986254069090018707842975968860860817208191044312500123732592781769707678588597460840158676924738442872302634891691372766278804761123192121256259953496032330569301843037705274086221068015118778028281802467310587648579317613629719999375456152047784875285092598488013109168102001339975346646167690006756834112253383273785674243795263800348813915959549885425660240888678115371842357645393612185488450667662740650087361979440394227126961741571820662409734047662784652355854951025249312814166228161879213807002122719575358831823492918936428246663086398689524067068925629839463808174531074698953362535900462564398187182263944804109706758529165236304009498249638148442610543750998716687235201419463003800812457548286498051741835382717963906844815345459048918436020884615424336617442537483558536788991231716576088479000263134654462324206586292792322795626147750139586838959746893302507474523405198230626276911144558907196736975931011334913678465436131562143803267636179399758216223142468237926433965142070603835474135492650013559285883569335040274675846354943241563893557890961406350104513253784239494476047926099560135373103712117823669046744589786421947866705264021617838035743635099738249508665379827912783167511015394567335958267273309398607483217130534101564322171562862915238865305784614533360853207324821705113899280082035534673034144423869238662932815419460124401928388147087508902991945324635173604372528932762295340444663765488591276267427218995927736825779381612449977808277305760189118373039862853260972083860543010217387262144204965361692870237163035025330738372303402698036587766268874820617350106930112812625250493047894371408841090957507850470141789646216312239510163570748284170485359802480033654770829126548076998203661078000548639990230155612639469296022504083682481303068059772273615109590324838969943847134686555966672034725208169639480009815512930693476530463130165435486030737277815957919703425252647206474361483541329927037823504806667314716864801878962219450420145238003713671555607451531952472892599358303114467258586318154060640073198417928660279288017848847995288492650388684645004063827119389989191783903325010062605032466354784948993850919770873043131198539400309519747270295304291078454143142218002900798744379778475716642182641428832197057444092240092452568509002657019939977657298265029184708450573884781608329631506917176350361594642769623567507630178434051050486420416286140919880163602963146726158347405171317984465717838683587549199077783272303036879820869878707299699627325632339381032777890641030866974713942067155703520405305370807856621862795425773303460196121279729872020149420276760920034212476730875668274490683503690742866564043017966708199777335765645833340281914231647495183517974630070885358325307668525344006874575931851121040336922899319550908229232945210377862810266133028478883486361284420627694024869103821308332565972928342717937719419852333636719944914457036842571794405885769952210752479327155476307380996507628326446551702223402101334892787056744387397258635799614835736701163489449213791777296872609416151713986760828915024848944301892843774452003803188598449327762215786983386428956633912840984119672253320633821087395598918575695640815072308181789498535692124715903193897348695266109073404080296176935601618699029306014069564188803831207213179868149379698334943464121540060711936908941998971458290925610678312221225089254865329866935308662593049464819509614921778490188820977008954291570465663499332828809373001225709770150035195035937017261040734629387529143944105783191093283312638150711167020772331975388365509248448636010472944538106887868086112626849887041236846004090678332427251204422800483377391683750560525429122517382822652882539758328378801258801183364101681620526209015270613052393126600851954963562648075873432313566484124371745909516415261203122053184001400121703309878099767373143440826651858178372523975075456425869677379011841194918067817473908497114781274878917111271343287121613300325175643524824916451497555086352035595302668311298749117957100340870433976519321729510714354560843621591230603927539455461106485982894713104084490567447477892929026203889746097905690998878966251555843435855895729352875865323888679971729405881336710265467243960255906217236201965406773277773317759996716265998323972685111484077128045131021827585441296180779990494788682004883396113207099007890149983512085990153554162196156303267994503405349266926557331930024232473877622476611206385971890992390097145904661247365844992941782024733176019481686888289555584119404478312846018873319705126996783756291978919695777873637575604125343814950000682885670322743316913753129867517993054339185054079545999478708327795655367730999156145039259887063035554726323627449190081355014106397456938540696324418126181251671419185031040017436979130294354354488762072793218214509469373212192536336038651737144026909006553512694946610193660687195599513357363904906689233409264118687012821358336224951101780847018084969756629652344317900029324186848743054386906803133886967159022420660674213584057029897394843144758123424124991036955787576006381352579981129389238368362772639453716085524659524762169675140994501099916233582705387912356835025300060357441629630905244415988372644587132169701744469733311811363506466263719853343152592098312656448961018077992219392239334050686212695198324307588145610164336998251498151282620818895983773573178099657216717056931892738451602279042077044037325376511942874433196450639641895020158631296278151817470093366904861206585848001260455442984407519951051822743627376187785867923215866781104264694659429705322243763179429482240133905468276255512146826637250875861436530414196632687368053356488022233804640488703471790823547969501800833330061785786369239820386295913259589585272702124796220034416413388371426104979632737635255959951486523805016107175027137116155201004850616307723648870516952444208072803004205775759928988353580121258087970121949032366820887363555072294162545568444548749899855940278176521359500916090460668726303943200358031089835293990316955777754527154454660509019783173044865000897943564713829199514385507767702352448562375481109479528006515134486114842630135757872290414401651361815880638254232703383317967741971967347141672026200912285162749635397306531223913455918246572067051844118666450907748802085086415500417498911646927963002086823590823984801823491066442650236805935458414493960242212272836044845091680898687524282104402015871544036942074350959130735888552277271032460025524679679271056183707852205520975325410829749248175379593701849975247829877455694718165161917709509261972763540245153316505539588034535161652524851022470600427378411933990904535466640474989875802682289966140300702052360624890508215437726617097599601128589511613832893940385066551440365639355346210880072236666899468023267930861205717154418300143470740298370903809468689055400908347549267609291207129642243364813655482767281846873031543570692657646046315076323540611710392587690502364470242305162425134384976522530126959514576098026217383293620316290323307035611652463121002782698622696481529771965148032034206510607349310884732669533496895110155085422456287769574535989355695785271359761459415871917001959376936572288498787391047764370535869084703768649955960937037410466325436411859841942742696844846315091457981028818708587679711554987949519141758889055945019568523405110744553729775101821865213994084040319124538541431808465466809594919142989615778736450845879286089681611928548769959861759438760051762565930492153901760609246048956155722612258405271265634565284051027801624894490049669126721201118694992299733778856615942134432098137734482837952178059851337233187663407595310614020461710499313340928314995355992932258759153785548786624782408361790206081987787077521495028818407040544969852623837281563368092124404405300701480315727025841127335155478331448266724348332025941187117384971274713585120564624374205211551194811547463997067033386467846778454805391237055427419295878877517069670458410152816576292606904786020974018497591542700631987005888049371932979791647790823993534504439201361476446467276989926010557707016523485445344018291104009730789153727704461646127825680888295633680769005281581518111346965646363300785656346767709866918433268524566070291819616592529794183885138183718154722117525656708988927844036562760619822716485134581007507739791579333296643094075719277671654268905974289564169362278794837770129940022634094468018170455496890298940957193001930502332103721213616697602356299974617531346544239886602133519743719934925962749200974482728046530031200253073644247454197078197863463423811933513155888102618710624340207935876060138406155803977331857768081556738307482279370213380488520062056622554569523876444327683134932180347749047859586991972642326237767803121787050333063849516955686235991790075753493377987113595082066173544978267121256704570938163246603679882044964714155366020427368561787254354344076163634954844630701478258500285732381957062893826919817936623268710627609845439194362077662783405279752007390090225186864460055863661320365739800303471491854717616015210325198004934450928133738984559987942168662114485086773147523969871012985692190405936118475392232473940420050108210125076826978411202601656840056852116081896112455485173725131050273607846233574173567178641421963956948441168120072241783191103210100448769188102362000944073269301515760384040834020415461591572604880190750309335840361551792956056208556433889064995229213703586775546959645886845576931566110437797113460183747725476381776400241095612535131412217207612696318801498159785380561190936363646257922012066308250220682250844576752559090142584582819040130132686361922248235681283687975276590399132446150417286276226177164256570740355400489977863175274554569387596264414059118605421472410775953277464530103107642283825565252128990007022420457249476734709904428485491186128339357509149800774471053250860752037891575147735089896272592850619705919122820180054515280860233225088189575450539248361017313530125954830375541111155263134480772064406496860722172674998792255519738220479030178694009607882358900233604703545707636640224227008928659940952502458089107202842833720759480871151371264757191650565545894974305291719994023074195741065097156649046098768187231060255512039683395140681182214008974223561204025867116938358733175061569530695064122249536011687604281206517381854517454365529503281564917091728516655181101596450378898340607462181931243834493576249991041941816237863853335765128244690441539986465435973398918925723894795689797355700027232633569115516027291854698979649672315788582617431795389820721946956225634001053529745149207436571449645636681958749933471638937089144773650785659466529570785204395782360966012602574115010731470293720755512569696749713199524046980249019910408790777138387537004948697218597994208059810647550872986125872035799982466674289255034415507344647491620631501978640757964383480353342465053567688694781673737595147332825198131062551666311527936729983625300652097044124195064686589642784109997047276777891883298386065506308236886724617131728413384473369990505356217859769656091215687064523420774879578205438837338981743765666293415915082359033883986575760034233067461187612037614759420784532532817044622280060264501714006625536295565987194209092376940661018300828943768820063263599907020017608142921982069646476183782948366612490130243142344405911351467178704399348055351979342341293310796000407526150349771734363987910547302360124837383914262742855139677550820274641178421173211141330431213239968333389302460437519396444492784242033091446486105140335100983017680301806679396432845134296630126417707859645775541204224179966644687668954231944574576156642143552107237454305178989502358384109166310523253540581898540755921233516856815551103707405042160111179417017943474549271915163491338310941679684626845927114110391535557316945023821632285497428132658704059731724052320756585458993929873060541574477397371223227213830197875953121137218886207773454992498268354918256899836305903258403647465647513295486835589450845351514423082119992828184314790051080339874458056216527370714105334572549633430161239235501580686952104500049950942524944029888481867113971647596914580747689179794592031400820765509740988890252569930942742963248533160162669868463020195158177179274643393075301055598093306130617418167798808926190074529964511792547076028818070024448092635565572344412589561317101463188205876420693739754744869853248272890967416806784968950907218315391540421932321662568021035252027765635060148613441292166683100173478993902169644742059652036800395197019754664074677214811684341764848720180174345135855826307207183836807024800974404023809899427908508841134530872231336905129086512002150386258650360425609471389299324457423068273485409409747650150416827702346638197319431910384003548500364953290822009345325631487254662211142522170688588531679252604590599807143266239153665037712653726368359410372765532849992400460203285450455238001044386933360618436998825708811041381694715681576025749316736767768346492485827412866680785035318964110200662551389774677573063328626564596789519885212487667648362527404163495667300417717858066518502231631951894267411374308220987262850317320234099107982398800550532475018197017938320373141935303883680033150126745294612381095750189108429330467885992834980981109986097187858257804877768740095344605242240635484731849159791799256926887104307528801836188180412470685848050837288801140806986697610981619272335770069419658249402606536176411988724536474135248573703015323031615142930848475328424815544191486020733383039789784888075248273123411259390298489876945469703331524876678881599848422594449721064802256671616913883495888367269557961777192395194772751830001863523773114276580692300080065040459553719224023838176406488197147424935097705497454025930454262015297855082079772003154862591615712629270642523080731567640524285439177888152458053638191274260142828576072353304647914229138127876052562286755478642196147058055789375480982436885538913542198702899501093709243177170895738281208900350224398636676868657454082841001661117682400771473139003556650272928972356841097580143968912147058288256252463954775968775101421840117763056840933769930511626615157922565819725307206736995179549748793371917762156884775593071789147992868944781845997337221225497821395097284844301583257551014616350220826641191236416690671362372495901346169307132807167145381042657939135795926612428435032460635592977318056077997737149026488740694390951205425848646826679221497110828616573613576256767571251281415731291647437085563347480061697804003425429087675756950937526136574865245123817473725537572714633143748723179904246019636634052077351459779231071205273921456211703968627632793873428878922741108809025741295332721907606246622254980821760985068204554192799144090010603546233270924348623450195921669130402598228428497041382879644574247486851598195347872628339916725160353680179703720971530642200983765920883239663174940609818918783340716937758801634138045617691911381311690121673511182177909684474302778372310428564324196849337146015606526126742552480109643386539496048575297553517821911807961049829309304869733876186662714964301670216156871149477611642616427064573254702901668493418101569365328852220915282811532679498315480583654189494483618317488433665424011473249388922513981150978650918264362730215720507615025794123793028865026105235569783300175076750523434199457248089077468614761000069045405532970574180761226462185566272444726351457393235669109141977054397372898236676460608293362537431168864734365691159729914184743292426773901023125607217987278062850177722634870862264932576818111216559672592765949369965521634827353537306180800233309865484285950589338758184867844132280406557442446492192373532623078166369816173142171049661581744926919397313010719705177888084640100661416813447013955315721659142221209998637980233975846194990980685331194931721921517568348352672074450075524825100039723158545430584522994642025721903014212150637055651615226233217744507093352385355556405226861106868028956429907598528317196448197611534216099657172117719442326037189123481769778083108837611637028018914665211169460167486483537476949675915259223133812457056565202515323676897928319301100163928485454686357217312034280344970260426007123249041456005910464311970983108738369467871234411521518158007744176641508114092399685866388411451723815388002868418217307965811043392544455162323435666206934515243301431123242668838501831134108575112691628356753867659286994587004221242674812617497582126021317209859878377780432339226858049108831512051353141688606889655742807271645708241330333008171030740965216485974716368284649987846602212947650520130537533707233862347311510230136941128055477644903707942585501176450431755531421342139278615963449039827265557614887477202237748380512259909724501354678210858711149082045550100049216679660497262391603797431872724669307644062463917050094387723935443730607088047108249994665232366636075811357915731216925504396564374481879098314105074755691005801831209789891645570445906481321585993428953673976779174675612860116250521653827913018720835434569192835576123264665898991082969358402413113979811891766904465020921382622033054019052906519600934359746919705091086559029414672435566646722220382382624069351431899132377359324955644175401213010044741999553537511261814319848359301334837173085440385837048203320209904024898683147408838819293256893756129506865278802372692674840079606215045214234604207509381500208607262707641139682997729897330926355992541079049556841235540495358795019349084726304966022703460145388884422912985705329612116381994902386067252767398300693396700813398455160892454848534966368295800734412343148882068750688179595523968667229075908535131538357949480297256077764476759618313799329732067450425089959743431668791849120284997739856273844279510223430634395681780332309474336341116906376562039214732676685304839594957561317263440442364570573243843511932086673548925802598754283186940075893669757235100801752542501703556085229672019637205029085313826207411801044945131218454656413970981037986478527375639581083975193174006933433685439175654031959883726355487476269507188863762002176161130501785023945146637188084430393853522290579943016731761893080834586430567825408351210935256584683705272184654011887438991081160039886838323375936738245341071202089788061311269829026218400930085130748474876369488317505568898480011414438638756837483964801859833883824066122223826490689707859412822332621648550864922053165442397048485468171003696397749663010202816632543879319941728291012904639415924117736274255497896986270533250607541997334672991959278636775787030656803392443952918784920167938928110641070155560255882701316911011087944937216251653347603719480239473997412144753623168324451731660344941209972191513236513365156213658989481928884682977026268702937788091416874842203235195175718106054277578526032364156042978176149902277466116863761409652760368063240663451401203577728194229863958098559737658355322275377872551880083640573419622692933881770870060282093210350955967613007780785051847617951506288391408489557852847203429860221486620654073014036576550015704432687866718634258885396331234270904113444590933902893208082870302357982800648356561467023007339419678842874906715232960821860665657022957065620708248432733127552018995646754415012134861914835327915870175437047813096687765925313780425148858311689291460289205899609291230659694070988798679550504790658279598051571635851993237525385718902125124635231209624512214157032528373053408527570821230218549244384880333975306248006580085160871869897259186231289854971801350956144453229188552389485283195733088250749215566003150358382057332168242634819756223034094716142364638350143672849140468926829343765532498829331001395428688413905887185653198704935198065575197863985054191141892695854223376765013554696286829180949076748227441105911657196501357433120126804803604106197649891808737670170514810246957526981832960929629060149216978525508115085154720736573289696268811495107321320466825338128353450148834779412097914591648392909632181786954943480092041265672632767781243462782620012957644667592109461725332433535322138185906627227217664085268387443428954863127448953923810885162325106037390254967521060158312360357200333479831727801981702405051933098568540314775919442409907945348994670101663208801127187394787622075262587658743049679200601991556077197925603122826132125895428622715498200571749486090995907768450247124634128831420978964693659733170651780933161331223064651644823899243988921680447037156317934915839645081792947800580637831683665362293558555402328481174198856961157137757502169699227581324433376907536790239873111099151573716790125956510152166783698391571116008605477432971148006914548549176277244833189325696515688677813237913590134171870039445580029369181658813326895947807567690408034366899751267967161054869666877550379176082769652583612683293149975488530911334567885060291591687506846737910050031649904073216808772381122041936982354469044378087220355426949348939873664523331036937748839954561371508290295099429582552926840422118895825995597985207165407353024967647874895426210150443360946754983434282734688594811086263803929515501505519834354826490849472220388317736703085669088834069323219857640215197164924197521297356696336815465421864581472495359140805970159140280979656581845127673755225853302744779803029146156289074096271740878564143227638288390981219085719692397975584248955036939847115575624135345406196429368959177486252937379141537176134949855603522907932723783214124145990878701127874894642055727998002692034354353311834453809082200441818367607503389551530817008499040861964524072671247007373538871617283063150356615030359734253648108564452393245330430937736478059185023000792938986245204359571822384238357135376508045396019476116329032694655804241166532464885151879523823228886787157368610862367836592072750805101982202338239427514399333081059104098157476706601961842874276225034154949916202291567292668438380960722483996249272108018253605343609264136701968169154686906372796625469180134184061527392394608063918931774018267364727948976818626651274041010635514399322979648460886607595712937581142062340592091474647845787183038629043204656184857792537742960216870286250096751068115124269431471219385332506557571550912602329679281507166895838971096022381443832677654152809081917804861949384410291272811245718894301883815905009841723983484206367075572632513994031128741987502076496564828896692920501787236426515728729648358776279076280849212652818801144231874668989037529690422690696239209974655262427854152605776870046302808472951564356664977376862053888199653826284659300263903764496403660465434080450935806733777337744484654684397362038357513208586368160611321264207732525344351386199772306318007245271146214977400866748612044732323755674976397205852107774356341152309066157313363455587041466937475157398491640371910738915532341707553889041740808180210937526289574708760387069429133660003491823464924891844837085861395051559695576543354775337873984825477152322331684716480337550788700071983495705022848686548117898013369704688359206529786126441053568100009691490503488997925022631562334275282690136226203306254362969173234260289464154938916255539389860466164602620616235408028403900318594265477055911026765032111739569966050872119928626082311279938619108960108614251810019674165658315431653683445225674522878212265988091001279782495618813825683632273013624359429377646716687361154933218683677063823848610997437324871291034300846680426325063646062534451139682726104496615900156758488657577339496585538918286095298913380287893891940798682295365637433677958366600768682228788481908298520325215219168846416382272915857601924871006240230740795348221418382633511920230898985236572883918002042880413270039602684203180937221428794395056582480709158696527133056906527421021523099102247840071893581624590919081703506675641273396460626941870785757806032358647396868643349179648430125596209011369814364528226185773056
 
Bignum  67411401254990734022690651047042454376201859485326882846944915676742270700738254324012189093273958935189763096092662578499572617038706183124893135193833022989256953210196289468241672863888618038537874881666541392847226977445968742340884809089414305471324099320290445257669398812381147850679486141068777106846241963630108359641749212181836654212482724180596063317308977734704851773936716905551669397095763288202060410118527327442490158969111281996293213429770950997664449086845487573646329916443392868735675338887493854554723112388436112476590104636978314187941020601103652043810572805628594182610758661438134364867149720092052842063850921820105755778301374301998205964916102148880463083063681194356285817173546226418594070516920632907297327680323570097478938417642571727885865692342935027398978848714162873276729784189093131668670745793408545374977323158465508916526032892626526906254259330166128400105835749887758768173155506943383029908986754981937127357421172164923003694554250327792161312333652766172436993263922421016899399885845763649452253362080509025447214245672428500612695951531770432785360253958086933907681100116943381838112490587211295116716223029017652065954748779742419300116255216482281889966373028747892712796158690669966955587079443293754806236075083016367242305256384792482230426363358691719842831820829207158932930021504008852164041213766200225261006950931936673737557253895708176689277639463387517958773679148394862131424477607285693053663259886202521405848528000032783666291876143128660030397185195935291633337062619065579939012234397495776456618585143279684076962027825152384571771693502567415959578442577397844003855375507064004944356361215611172483786700621821785141224782963893842135934371473308916338075426882924162385698649840720461388046149956635915295874330321524024378919719756149351017192694963321575924193986921492943605114707580969287199709983935495221932512654984121896243741418349356369531260781703677811592873330905957561792449648554548772091176208089364223879004129760881620764801386606949356348657286541114326671891468998485707716706076635502209862236901849291353056601826098119212333538696876483987923594058328608342357871308731342694437099070439401885007646069690038121000399782409616430461926271333687531701298368493821829710655007722331597879160556885198213612011853413049423129890368795882945632471658859121769134313611535091753921075726383289976750950399409590176010991767220603171087095022662660433013852538267777537689880065001962419026303960529912587744473869022585652073585170485140583343226859679060399190806440271748594563418203425568948869461672432521707120110586528917612399814140573513128889930296635497641579767220921226620995785751651388355740888260593114448676989730712525821622898568252357623946119256426723661840388532550385984751855205166174055295037851492996836668643086443699866515805692968650377512360698671280183305223679064842904290352860296829938814724073307306094270718810073293756910214606530922800117334992978281440809169954328672762489360312311412759941247682464332583246008369784904882868714995634645645258634340145749555016026307519443660186503070778746116387336645030531444024382755004974685243621795950109200094726261937019848202317367348630304559626749766706997934559996877734337925772707482302711630349703523565257969022494257441043608410248116761444171448196693645389271046543110123304883699568733284646085827357059014214640025141924124073297618353280228921658850882819157812760610806605819174513992500116869740144998890325925420226964457485745658576994448260655519490739766856608058616158400326840047831228433860126486722722791810785933691515413833268292977513406839731086082979400289609790092497208155282339212131525420789160975441011036093272819710249984206614199536565437034029298355490837382501333691403538452189416363032112410486563934554550437898071165125442342522333284440977784935636194885661506037935066993730673935750338989017218773032238966780552940307007383731541759462498591563858914233107080820638279330140457187139801440359962728908016469432681120888039951014566868382349270074913822093555197869638310843085802728758622200698208523850146556007893612489080427886345497182760258304239706281709511603140000274534768836003832770732551794846447747241134662110837855190320630893010612860417174488571419685974306494659077695275567687526962933215453909461674463898420516984739922432526232119440106969965973453556225740462973769508912435026585329017690548893430493065671589592984196862514536232706064673886996798936226302912677517340795353342773522236128408650790099409300411384989265139872032395896748162155386136235786709463708960031173876029800168466293837678511302870315974638434206357462290535124592514510935718217564997136843089926303414199332774262157832880565575316575826937443043158463008897509181247861220796556840756122297153977642321547549507149629093990095770989953965668814879097406074022836802130558692462293543776334792960962328513292711172625642475080135995892956896379389888774609457099571970416204022213100366115750029526902158067032069913001294141624718022164995533396898105364739320640913628734546654043451922564887972741809607651794427711756524555846360615552044508977350766156617298229400984253006995819847461027478517971658395980628251714361788945026093505753799983797299827003801272844658561929680005400557183843377278518861321083424522391685720245216130544877001026209329846886302020771712761394885263897909766861450032893893002793147875408345725444321327385024357979119772952015945701681563137923784567690535674880913079525224101393732332633623308877258325224938399318672933597272890954694741907028307225132881177931724657770719624389493807282241248657920871304522019537127329799587847066870659168158266003484305671700739124557667346394153259147755422638208362405182399065672144649630319631333204060535763974761521215466072650667059061930464637282272561008925934202636032795231532021691174797521621814502738780773262053802917875081039980245681289843184596990500495149516793829209575010553452867586336965788174691967726568486127123551251080991980345577392676151709448181729982391271182803633149592107411739104437716546284540849138068700635561702220152563153617797703884693647220423001267651085548249166061855419898756301248623030418277519331251647860858125504775959211923255256792604654485437364685045816639043763867626621890030278080705221834656536021441474779877734407372117796769578672746133569516637624223125629835536683866164369757679225258348902213788219240658176854472426278974714478531821380658170817574371293273805534269370824023828601553467317947400165585087842128718522929491117872899274993631585880447275475510466998363720953100795627194827038004935332035857158294002586246067500792334787407455541118189670396637250200687874935336965096901198709124331553151556514679444728889642764226814805537566350838660422395345045060365466768316158737599130282411982695257152066528972487130281399843671997229684146299524795407999069248513317314895642705039253476036385772528541906594888566057634439262851357346961554442977037597697064179821244737703612892283248017727818355658306750525934328252099969929654539373597430352322351448495056044326880454598126334647928894430102176966259453553475112257921315165810561046614026379282847448593157564002981001060991479601038890430987918075233056798678923363248910531188392321231321000682259044622457695447443559020413783586927368072284841353639422915783139149260879854627907829093853467074360376958108521179250667721685739994168347966367879863108343333511001573068230016385785974752512432941288888627236929704612370035040841301007682514484803241239485437969800402912338616168007824275136389377446944017939021391972579459907314598299195499685117072518960415964285365462556855339375027942040968676912423088765414321477477211861819939905352434236138815337033362527782758629420322096499797385633112653019208374038178566817459770894277274319394581780161468101137708649998369121720167423527477944688679192103255265621961569562048115709619086051696306114355332682743255598311324532719382890260713242832824487924414800409415993941529793337992346968367442254626052185497065036886105545055154591030666569580520508083234013931545268545764105755832203002581114785816147554278636240894022028240744994240649897962756806625096045755596811677576003186294682411933302743787738708891950692298997208147347959547689107579530533835041816268783570118250478033715342600518073175286125241081287220069195918468610736479637539704590695342610218072552478233328459180551485488840297793163754447667789564084034819341180598332325172496374148228369881975377076553836844558941455492554800430586231801005217607222145352181935617363111627525974787154221401828923274309341959626446110281741052481350557987973159270497450397815618674733744011336906771235316561351630437528998360569710525629664086390579172969270416111673272045893921265410510445670449663188741275781672045185361651671055043508394962798392361095730354373557087959433235295662087061329943049083832843493981151532836468623526657689468192470255309673946860764961610577275826809126896429305695355821751862067081932035079437778374000747981507953013802216314972811411102019226563870957489988161101148365957692825970899051988261194127601243825334308828410160049373743529863113919333876024626614635567279394634981761234386604261187035702614501909437431370314994967745723382305404632616699766705833429937896929633886567639158189935677887928910914645598235737157354882346254187214685483894865160261468376678308631181418367724766617153356227490082311346165926939130812906879226329812561098309190858389140525585470375175773847308395486506112346596504267748847064761577117950893245065835781358047335755020415001979951123914625569666922111457767999740150042416407842675117889281817521315699796594663349338889891017857593004033853884486972738932322142648736573733670170521971599332549957280976703020155691943963922958830930547747657462558911736921658634879021691512695658310564936631874688758649005758380590796406723017615397230606685878601169286416891667113891121070363855304951994248442954174384277438296998881714127095651824902697297097544951271609190591265225359996632764379577437634456420351360687688440045809155910003146294493222408345199320352068597312293042411610086070340115736590337019567254569705671311983883996351950782293362414490330101014323939573995031581681383748804632223617792038532333310448182780869133324223157901821644097076854149375468924745488470476253981518933983058576755093066378604600682097819130581803927717716810924225008325070197840315162300463559926756135552814483431985452991251746627741007075557366700701498760624475936591777847169710008751419687199211376807221202752734227612921464785841832233131821017076620605553734143809782145648773481960443723020331321360846512986456739724157737781392410527376206681335406772862747312352403988704722653361201184377586353223033007942071630914867223778404451691217913333205504693366399351647589905930693808534020858269794259090469965629192281856657281434952729587811166590382429276613044571761017475613210862883879001600139483133250497675691502765588420145871550020859607948518550791326301708582701232920174823486689040760363153899737179037220983310234253822527550480180260953618407846567244436918775283993266967894105066660655366889232976671355696907588018734069699086151508058010540578040795533962967336730512697129541717354570202485692524119009780413634503462162981666393974656095850626905420158152561925319578062251711670543725958415988745287492484618328679483095361394187989184631658141051321442018344765361001760285576939233151575519156660022956987666585905422397225288257618981308494473539512645869709442492462916232826798231945395737481735557150043378455619408800238965200347141898187901343238672335372533546974673682569135426285611812092140808758819094757178388639913786705407192885606811974342388796858754434961261757048231080536102441101283550407202651066807267154489935909045368305871144740335337539910302618673210025885790458555400399400975496655469717510520253534930504958855654208901221084243443404849535668530265526638980884204320667546142024433397680566013986307923624941592714389524232698292826861127326867237010196154475466381129368352107260987629056595044587022661252168857672092065552331339400301708820815682648035176371034406891928449655443916396855175390476416343754033334577408160453820065289521727206843910522647445907470690536692854484266849630278063674256908328356075079739672773445763493698165816192131500101983657947090414159859904708609391401228968825838732756567253216384238008055519226428380643999497655765955040491522617503489615401650580976881771179406359858842315023318354511273026362686623979219398978971818812043988402333356297016740317820861692055656726887427198427948409346971142312637576012321643263645563741521461438967406795626694402034443533097422577504736885869767458141704129863088873759258103977370103358215681744587149654089017329858081854374880560488432814620478529944835547720755090503644913547115643934138067592734335738563797931003938298104821408163072873724844023296914698290750224614361548279165588099780549437171721278724979439983937993621432751413010841334198312819372589547576241521001460127729698995178559804637751250975660701441542464098762953889655877160625638750663595094248313304573632193924987792432115499615324906067058036620103644639503148521339371589283065958487128579587625119126826927519488036527489951668370162821558445245194791937987477365968327459683544097938012434676564451533909003984462069775024125920304092422092855081880834085869906704316421648675614989730190526031512632965817094007472769164940137885686932471248357987798597233729319976950774154390542081695611687364436680655185842909795007397363640777633905454944723879464999089403438217344238637519266597299162275720568100776440843754214089575537397953456032331870754414136168258392907065497409341445476158969810763976593470753282251964007437658357772319494254104325390604743674350948854199593471957158566624106144699662232300228410577283956648909467940354381819920406988786856837236317165858740621263444529235275713497951057789693873253807241674025880100704324862993385536980380754453073894055530414502828617990674967729444957742159058329258910008535160477197134447953497188212988369810122628225556748108699334226726102628750867165778008131955234241095956095998384417283479570721695731303315905190579088887079906073713074210538248426185522485630464134955003127667744498718727606120144146538966933359636240463346837228318591102327415908359298735890593440467040219405773969826344484786228355691100480042517342474022023822090484481983250784861135544997123845468468474496607275440209343567745077844807234204777392980070509907654177979050016412916046381241630813930616942092866607483546269579307462411111241143603711603359723902441476344101059878641777336322768572501817639711790824265335266753786780922641585436896891151600981687960006519410197283783514390182798711805548953953989094282476781368349221748580357477051079984131776934817232396176919199529721533151652159631270804494777976559913821602364788950600644476002783290423500870825456765580733728358579989184895850134588990812660974932949329591558962997360501019716175778724298246028335096119115465887937545334045797185815333053919608974529653634276798538664563220134843998541220540828260364031721242090531450054863923369706395412370450395196037914026288888988328387569551291315271897167868250167149135024062175820093724294251973107471381507444430891970356703624141192138806019311013767019897610931115957301608485974156232374988549710715115884788382495026801924550140009556904681602563804943209498763394070664450837623994861351204229841936593983006370229415610679060995360756995482725105404161036173445305294922671471059719444178035821503256887230679074938704168502344836976755909363584928017822666963304796528007375996705310655598052245597013503266131177473300447639117947731817701774301032892360490791720898386064968202587112202287950823003470072454851081833156303824480369772647892787084019636499376690322776034560263441189350321591722262454147195313264794558785930187612207972313392105168110954539322359737468096261675243772087066058751268797067946723455319773281319814284001475769713468485066447919683967712449497980687362393119303581585832614919508263446400277605496719037266308709630969568648771355016920905285575437032604995124913368122909643585049865855967592270323725092458052285152479080200175535917709869003179621362820706891215330575538198907734449877549443474310707246258467682574679902923617372710728248190364988985560938376904809989552360509011637279554027637961582695347992492213101578868598365836515143407122381740760648804547696424394051601924439956582965903552608667836390809040624643459109397422615550520757605165435975997379906765347706468122865958922711261493926771117870917276825946671194403406147025353358361600240866015335681334152256193944186914481597306339068452244632723556744751014991148656195224504351763579753446664356075411149991278860174897200525326303034536235326135498203669988953445251210255487327118244564524144367741689742418284591492595579380049577827609639269877496616031553006805602751364301107396041423390670452049337054933565461772884863373377060945986963362373443950938032030112888657803298529011197945337331357818473129114735700370376516709332978233570703026136852200998167001400703476746772227820961829674690690982016133374533643548217149284597246347536814713964374863784070287128286025790354489917271875171839597921298225354821649002603235644261245544525307650210478276834548418276145530492986003330100723722000148467874314349286682987992877028834568351644986514298575022698790637251690852961499731840478946468677211883576414283781593684143026288011721470146682185994891682264687447775888344217890713403256095644477121270513080335111056263773098333244584922467138274755662738678928312817565851315951520627776930902263632107297059451158390431447997622782129559368123981743991209607598198658469633653690358636866886518085459899023142709495130875979771337300936716315260028356927220222024878425282637098319563168673288972826998555276442088767810317655904779220680562914090118303031316063264831447684366649480556542565477164383225712317335102215181411959086964728551449600232670001215268629849144244110035624809981466236664903817695094456659814258913366885321948813730881276852980351363351608440840759645929415941497116231795155403841775013915872890153895350047803279434051275908464464332827921380018330862338760673735035876487292795880527546846154813393393628668352547067073611518003219046855417991108479418867289782811754884374762544570320458002430867311470958668789756453550764757531203023579140062821259442785312918046920064121249459660948298880399313070070899976192092922572630375600536265770038676122930207440489962630734644344301426476844606117520346564842993597156539267542751777703254125063221667746366200319967554559701401844782686854715356100495610256187198130183864686149349942876039798289523291878194773294205911350502456133350213066239349387099118827800541875707359404630876899814891074505681519230896311120129868280403475647141598457324654968344004578838229154299408703439178389056005641889350921868173957294315774836779421830689344039804402979199713970132397338157145224381557731638629325459344291411381222221438629003430746109311118701025879867588756685518833590076443182543301443588990952446213670337797972775656004544433513074193149056117346425366675992534527724944204694674806347419708190646193770951749924849642349211606850837910893267059251789780206367415559316081079066756153496856325090792156355876282933971657962131100148766905077950800476107677801220667633502620055661954007374414880463033157948738134959835583066244783445074369402454458971558001323615744642003772524640126723637741372100566890537156730888058990187641223632805846739396127465789487529791856802370752298077988741258764435801748425432679823121122128075309898714628761947843890663127080336984766053225204273638144525682159080489690240459929869843631405206072902457502608353985130998932237809769524567772227198341592633460222334493486256778203590537271612707850526459415060422325255741570684611550288100925598418273871504908063620312628398629336389324598237144543735488374440996345341624249582772479647511978477912097068675203635771283928237481622117393596741547403492479795117779635052248250523794566331298830565762427389998144835565739277759230769432044022375400734422848275637650756051245479684613863767854520342838366353923422246292547890255202984131122589458729375024967764458887331425049776850804407995522261953067354189174321385836938557773390738744585307655502790370412524936255784287119852028980585732930776090700964213924512718681624430575194533580512427517546907496568358903980984738197353445069696795563767069696694840874260841664342818366019011166965009672410542483011466716515188160948749899299426915892344161767637048345647626332945121145180031129075725662331773250917525206858051626518373959283058957265543393743560267297992538080141073088585748446659809316121630665319237452167496384020418171487513659598826646847020845737943063513841214028666761873230156301352701481948888462035183728390284182476691458020172697708400935729087277484049857139136659457477387119216966900405445870407953489972583843288772382984785971366445457109857565352476052069579337722525443777446525451691164351245970673032880805240649154617936894332320935690475940267819336305580504181760053586638998963303588585640921274515507445566748636118007085026187728656396972665118990736423560511066065662881094885989668904812132651967134524426528517266708344485816087386298153500389702711102505761064290707091266465018272824600192332104242495378784135536648542641067497045335312101149265241872989681159532820487922864805544553840252576187344056569263633192997691155029968847255181294239836784177255831672033564644926379307818960244439126375897926668438513800499921618108207744241886737778409174801255583468428596951757664165521625068149630497510242170756840622563848145634304532960552095888322260231672398683373100668132090259111062461762950631706240804900720442090883736193737202417349816366851985894666880638610500751264933733892978946214449190720878486031527185403142303783523143734095866237808627021398463590081348781643222519494437691124552836229544617480262982077491315432953501442617022092664302555433083188681041378750946112589534819267534253950501063769206797508668467062900837296385075515057045018566972210727410883263430177791525897499270777814148617508436118615677026669223358759709971971991490648532156867940697391044150627884841132148962458237912792510948627917216218695051843353146561143191017075607368014170101105289739277848558788749129452031436419903230317284222438005573495031566479780200487157330596314045959295972826073892539873373691030194350976438850139997926226928767656730523406308235388235252198293288329242909243060056814109270449472012754392618153690850401211745584803914462551556504830265125161543529249770389318656518828820101944223397505360745816732925755890246676198051935950435339111721150309169017075410132717465622545350580206377379487284764087847374453275759748355921574858871975646781155104881811094870618031023582533226577710885819945324404052598876016094738654345733495424950384117098177403831354211948556996451487185953719099312246420892880505277252089766008604295017731158273983182501726316566996078554904131364435845473239311449167004228804792641431266130929731688815098417793010266329449876434529811991978623687371843583651382486294447492281634766843591971621598842925818175811249235862294669503853861571962417016769417348591421798942984199920535930114541782437364931666727306356552577037363930145004336079150137819249758410385736854110497216217838004532464933961462395425452399945745983310251304484888339797576008678762219584938152054969797295410540003079395265188697524407676871651193081421519089055922513766628734028092566343813060252675776167296661547355775381008272086865661491587163850883651040616668808736314431600485037334328935525692961289225376282254853178063537992046380576267770603049056351889266775030023564750660027199766346094292986619800213397950755423496917143554817982939389146967734506038484862073519687342613264759145220253414981789001244870070296795316413300363721914592744341846103132763119025823297428991140999496995558173302383339590605379460281594816694924563787790471096871504062057438822227534410591613308199596122412637756680718319642591616781577960510035030404316437511271825463896265787493325185915685192331528946958985195858405975994403506342494274129236879148248746792876057001185190554045479829715024395299705829078927821452367264931090865676980780261140955956433127196148695511281241914457165840638048367411923001149856023252109061859562978274103067930727479185826713845426110480599437713197484408200316930291409715083755153115764249836272029869757908514748114503450253457688373702574449694479151102007254487486813619703585716457352363491193696937062772750750173793133583100704596468514790806538227690498740150104363593638734243491666871523312039094802017222563842835570100543257290553803541679810732712567216093974543587170567280333818830202030019007912502625906483144716675021824790123866714382254989536254862635333790431460166598290586018740525736324109784831132880766612780887634088328073623646880458290615459090354123135828605527548741160403459004545651142167351299578844622287585382468440461477508951219008617540278585996244043174632652386504290227078407600224503125492429710843162507680701915057769648266300641678882760513232429699023103451511898719339285344126398684909215519051689136884523375856346571761927076033765342828538150307869392800376026277483955810206763630468599731989789932933567462512538319240577386589975045754855631156639828965102133740942664915727374665397579051367977438727916257369726412005967452440749983723438049679972396753560005381908611667015434510146523954786141814164963791134311451836345317120711268473331071687879692482296761392503301460607859070644688150141765418071675211485728600620815273257148551620988474445820378666849320084534875116958751541279496927789172924556715181074330615428279441113601473575410784293457564305104167415565464703973469903602669590992875782849768587175971590018937614504506700967725876097249824054984654767042340365433876735653071123812060194056815980974221061080015740529949383365125232237117067248395165293829582745527987072809761894598367493617488076791179522782579952815014940448246968534327435073552571454424657728390481848858452100271086712858548053869363581899157428283963443484813859524529225767249520704087515910278270294198651935120480620222616354870548963303072152360278566667800437986240162921386494740472230952901263691425025313149497943294207567214444449287193714281741416054958563014030023686946298211298347556305898327509419954576884454867002378177245946538812394055775976752620851999818700681370938960340161353328570575174016992481464461240468080413461746449685531770697705695173278838777130996267634148557365012409200187264171185630509453632051794773780537592718779200297376084065697828477312808620478040097832882220131902107880025851513121994203218150112063505812683941217180369708196123880740039214024105583104957512561644173647041392385674411967311431830313508507741226217564561025986011911546104405497137374479907792818308647404892209021690986527208052837985438452731409195351261975108696531133342625051873981258938581226215465418448366291869693134953582841780652315453347812253977187301502369085783699065434640341170986022810100322518153342873656706636148193632267549627459655203546415359719815798128645055851476924998253941123971927521688171649602267931141193075825355019476604562856911322708838860602812216400698891275557804185725355656123127618445285478310666642096027417710416998398960644672526474084960010989656137373170608466424123244058088667093925339499756196423730748834553537735338603031518603581047378031885804704599457386618756743471786537687967516082726395015755499550198746396812499167310645386769222432233839460827047926796075058339464218462166822233904990711275825630404652201821932230778726272844135036848176945604409166260981325417692586850923356116173629758697343428119097350285975345374304652398410973251533955270760034600066732233352996072745031521380471706860159408067948597901197366517358814975505136983384169453262535488427206149337743474587313781568820497091157242438207655422341938849706107403612830185795261864722504371965592164323513731190413176723189335411048221452904371703378782687535903780379799294713533153603347116466144633516808956504478367200133477043941949384213835606996690648795642869808932046140868517940624624901205949060309321470341051080504254688722320319608027435029822085502929649090712597842240904354168650778500967619507160918105241251427395412829784215658020272741173536600620787152753046083600237437248184959656190347604463192075684777256010090047755497877362726008205075495591459057567165745544857160037161427275618735822077063161960242624175884168633644850316305038717239331272943564277481662075723768986440258658068256802285611402786885407986366883527356544586007852208826059548218362940972080888872885946129207746698712832698137490817242919438440616859595776944110441414196099073478398176092231656963169543088212123605512148230412722967253854753307549522800767472559803403085528682774049020527991139645239728833682155344096296050630636113718284441231096001112583687895546585303600429075683528801854858698311529013643602762703410459882582057851994679450786640926543890073828651869090532033953211115147664613188492676155240071592266267352371882175404838143045891950509956122004975179388439328020260853738630981269529565799236140100357106873767789971088495090027123513424596361352998992957308862844830914382726349348979369067437042932630963441716424602914248122331099883721313826556070669342918523269616260708802383389906754243739986237611508688393869627357859111165308084165811473280340511018586420054304674063006733262251311979247670268740562785001209886492098266504659063507364174252194798607826812916011678164300909199736838848500754625676076479142640904449929223873163467618773365926706246281441540369171529887406233187596638348992189267232693900003187034658852313977342469464475974717301638542362477606866541701899305335235954451799422309666572151025049517815281407691401175865981344960814460974733554345865938167036214253779076210112518539410209216989122672717887117042866636841577928807081264315711655484864963045654912537020101401721011684105574538715267737845366725936980777654983041153998032161146191626749598428944645172267296348718656417114156664160505063166327701634998452844823132186057266144403102262050846908089068612267026746208050858477966227716201820605525104548923526431291476758142274985698276120833873978883598480475629103241845706677359752870594513144082677897916354267098111346102373783973264265840917404896947921066276959086104019911932382117475302211779244922234162982166634823061786186496126463634368406711084463422003258272078346005366314688390390718684999654136940706294153282492513128436614663872267035069483126985193978097851961579340055917439199343747828271086464944386622432227941968620979412907434445299145399202676068837237817329850909710562842862093414340024684446690465369068161223200586694045555770503626272547616175908127440966495301085651778049685419667143430264138671014251659434957976980847970104642111228458661085270299043692735777759639571054052340499463847388435146629940233280349069227104960918097504327581606140957698208519077574503074500948520278134509969758321290589353059142664382300962196244283443142810101623752478694973653237988661335837509178882778123985882179061600908233220369265367616690051492277020479407030654664968484481385380628924477207587057049641709065775819732995689094797887761658556992629286771763011900798696978915319826365575170257595270015080360652677321727455974448830706517214603005713017754189944878293053078452864385717700001595476513750769928266105633762786054896078526672006021598426954675866978544177315949442196054394494075053868396181649879113118420685938959916683174554980153501536658894792168457532989410480571691684073835859588020691749681890564017091077245209910833183893757508892472450973442292816920041390449792708662280550966509092467150691126904945482895226699180050978214971660386820975514694933897753937815590775329089958728964810543928572991986318689171668591420501058358504580741146695776835010725642300057797674009103378899967772825938851769206639220212025727659398007407646712078003996691082292333241913468361979232934657298026795489990947777185699784761476066737009339159127040700239875756746306056057245899403457466838510892841478297299874750072593792256388062712512316964976170936052225574546184572399454891568626620027344566462083609410055982228008694148626722555486980279178085456536193715708534104817591121823538124665494078909421366004534080729192496044275229218352078272999651196288087097291834168578098900914103324277829532611765170215380455529681276853284203680341142484047279657919160162087510392025667416067391123910284652838459452023876446234194104447175644981700887222355520010263603960567454407272145906503441125386249742662871034334753491092703860686760134729242119835297409710478300672877339758275083970792682847358369311943857686521794850120215413952065612747003350582518699541713445277710029600371895230504981204858184204766895369762291775423096188142687634684229962661007213642601166816825529494571637275249848656866015659381534335876212714421959204765746142832641602258833025170083390569025030632666668287378066124168321732997328775714259775283228983501913072015100385386783242846889111073414168837317958808447008144725720311856774570554958518112994402076756917177114321902105858614518222265546984977778584491141594950317120164107513841427540714678784332569962882568246221172094162220610430333058449087038179919200292832367353408764291465417595739075277880116108273859932140033276841633180806816042045126548293907580584360027404893503972676048949330883366717481295104580324190146258922461215952328723027867266839689157893010972927840658290215500022000939049410522141151684075012540214883049846484948062351235910672805249068414024580091666818526634844758498448529783493282281927422685443850836689110004582287890133270173179477681430899460867512841801412492875072723628582029460691538542672678823955793983941538317240504255567292154110818305567394369014469013135093539186307965631091224851438102936689277022954570313773306559103705615101562529073889063538347125448923768074162000153237065581969470800715442611760067215149720569211224028933407274079215354103646584117628092862865160850032537593182248779891375054368213287650245066675587532674840877918630503751095543180417165159325082443881332767466605926282108992917274406115236934438099833313584036678380496679669350678656808226978743798106878667647632245882570532480869754950596529345571070337347305023818528994228500328348836937913086250014635226668851394148626130270753943518633817313551804571114585082435855627726049363799145142722493003352434051430279866909668888616776152606139273932060800667954266520467686309219047022136936360860308345845882236059603078136532326958276828541425122991844593361158737602914859798236334833594467834324926434114260330175569887079846209535640632669428138387264339587875743354046160376714255354576856780905015794375665813809916436299758048851536107445451128249858669498617516560213970301661968839415913837849151012079870482232264112605058669601763683568817533993491010112266282014826792675267151681414496320777502762737152993042614716667151974623120794097190066771056979930575332850480831896104509164581100322794459386235376634429559099949550847173505566783526785285822020670610295772560886028528372440932400707545751197861235420496219837088386373094444166550053735990696170704760159611631477762192100658536212589657144060534816014668277284550975367016048731727138560369894617730736755083815691992259183069442359027187168475614451849379639010473255305891963119383689167982326028425621819714038116595663352854420101130055409088001739624566658481806685547717342870672056477186435359125094307222662684500463749591852972304200844774085043372391537802181127029547561361070512200831696747629307202157112529375143290649857819245467747010061980115006016934662847658019686671612438485427533019826405797169425790095480130920286635950076231514045363520391925908499435907706782450120891601983819564951562574309277726048970620857350500972440485173940283996216238116478874161731785776094962870387504141495544324769627947937486186388364218492592053872511186666549560608231665935054076157125926144267464988451605661082777138955042994344049909047210793241563293897493377960356462116813223440376716740821602046658298767480239336928747595074116590812625485005340018646365745089770945656803562717933971342565960053471673352353838006155607341434349355861033398514218385142197198388752671327058240734603811228056452353784542429157970829120705532732056042995585506302903076149833893267688114032847301997017567979937962746347427520787155107099862296495665256364342817871823263754972620781777434433637085851598784088367253160427587268150521632004755365171096707754704444575544258785058354331890193437339321608706381208675328606542175160683799141477152966031999647614610669823891961501763491981416135484190024089200061825004196268539164993658701968271125897855506815292821713756446736677836999112206954843276314236577226188325098109868309311735194724844885699859690362804348119591560792322826356710027447332037869067826202160230826814437184080822125683667586724858396560908417306139249474591434754423935878122001341822461407906797370849868010520216364784340877988620141967568680373383338421643884236318269709152859272536523020856902094323003819759043996665746214730623476321931930639852304619974685735240643002089311373563935385561172750710987163999697193176790525819144925794232668228748795230625935732605763675715751666452849594420659108411108814039721440407692345990439377470297968160002204380558797533094381264190420814856213512511106231318841234148163369944222629465251720339707058728319863890407012043712084279894848244866057274319458654889091451667346210915149874249490544728926221199554109698662442630232478304051079785434291971948144938538254206809187031020960958799893175939820603449069339786451526312685407733782335738620322196865337294354499547119549715343489171066491001093559359124763727674066758779609033433610045851494187666861197161914400487267361305936010325448533429754684064172198176271554620044930843891748079835483846390579995585247612892426850853776133143057849642667999468490638499359086013161876725902857483832444078234019510688864496413271557732814290654868739978109420990666100955615364418213331163798547581075237397028637483827336963356822503681466430194454365247623658124586550854587689905076021833373843869997687852722574108793901220431741059053687983619906519008754752145801474352983545913287772789044275444360182660966508068947354431858647314212733358823951887646845631411830442658869626803203901493361514685553823000893595085507533565100070967656772703749629345559166843478964156476284628447066495154229430324885242719232757532674711378236110392289729994710409717660976627065820689600530220238626314829503025623135940734464128856009306889711647079570573023413945193409006427942349201759793151977086387893544918320943891237571261663557236872182827689377404657239621703800805666740788386950733252586425791680897904662217617958737469262784970304317697163931053904555384278418209156144871661576354570594313979737026251059974164861218215730577133599734570563973110888322013952518983564180706140119617723391963443206964698357158030582681570016907141719240861768314363753327757322340178193293507507315119886448142326447894001494813441214188253964699110489623310848823234412553203326964098633198091213163382133087216752719396998082106004656323644558222616751456946372964732718723617442775440913194640365831078124049021074441691678640502896931895937409458520834919040861337224227827325389954597285709194166834354754553176903620498774859412906637695803748460693679023245076183601491613762821954359293843492167430073047929972656041879568971825060991701374674347641974030350685971719649858510843122451599362985533464591120297721659067564686889870947876878732810695398531678396174436596056871535101741664282681373716847970612771688472285022871516564233232897823226961654418056314907864308076336234485753507439365996469362242388663442534731583260710801346403971647210298701603074750524908530975860498915404473022195135277095274201535311237698777251729659631406119553080694798867553264853572787311154440883372516423204536938795767847763115132690462699299810745122069289377275928048498843654630853151197634321590082715387742429152845248858327350968489086975239450672587343622524118704808339399906365396760527301082188365264934141348643886718118661801110301801511790106780030155873644423351946312578430772022898454962670856311321510790526050428351023946948597788759008096584346567533625948439368510807360246529239675664594640448145806523054837849263190468163773016701323098022992312396985576814388699102359974738644229797644751650212509764579884716720963604526952500948512617108976004527048398138574684816260823970874287118030014178867214088788838642113909868045910896937669679921747351135577211299752376744807966020231425080144826098959746607140234248558038489849437886127493409979658074612500258401430110353466706057410010326990700861252499253708482184334575845429843368918342791656181360344894577926664008033088134966118354829086893468188220520673469405468934291662743654327707159551734930940693890810604410514721068196331794010246957938819206563307661781897402939828303576516301092241888539925222931955310505502612236435941151335047137113805482226046886046532121399993747296908363197105218644589557481679502878809059915795397282948784523623255895276569497725113160095933936954074493128274933855862886319928402329920988846042942314004604839982893660859731171735747547846894663069791500150538694961371592772537553498897580046610258874156506672222883189977322321539298233818482073701611401837663760616283847848820742377008522774214571529847614773496260829805782222287492479215719637480529130575455576140079394355162686297322156596128872674726385661011208935676516565208656010105456320743019739196934515975466258705619764053609479899743316916457334605206308652375575988282987364800101083576119631819327520736786188703952694015626610550082392024017745653875686540340772024279914487754049407013125701212345491047616826152110649162943720430263619869628942778169280137691140325025803582392082392397772393688771199845981144944089067998202633058300141063703429931172643783406839784836381456014191519409639290078939676763475100637383097876377579767936825871674895502431253521523821079709044435580056385287273005335502206566691590887063758084424640312964159905821119988054080362973157317370795301239947593918773855140324223567717788372634385166943197197467220667100381784760962628815837217682606014569235406783962226173960525533025574513845522582719165579926078972339367280791264942826642954149535941668214057402906116173277073257221677166610097271239155672792952809732703283532116354968975743565906721775484550325590563083997011236592133752173122930410645383575246783424978006220715800324520355128293836395509694736859267052783843249524686523893657594107956339752540908261785896817274758657008828360762628430763504662385865043673003953807181705683345893438241079511584503322271406822255730675078221785078762509210892636485386526041591412936028345410289123439014200327663175974777513385142660469075846384356802770271566941223912218378114662923394005137938305326284899754087356577927532380050538461509086357219830574457283091232248149923264506078332932509682520627857529560777141190804742456855724399227884526234417762183064800226588728387803695696052196539888257671204810733957108211843700830403742524233010426592193867006686738483284574842788682485874559449401073455559276947463330695278127987992495359381507955137739093891033286372300278455794087777984543643384688193572585560443011644178776743964216550217457005079656727650193343726913836939845417841622827746442340284746513716405370262280680437256699654721178762906886134898762858260939162443521131389058053724938268158551971269384638215583050945314349987969337695814741301678462186921737030118738503104520850288955938069025053609606946119572597453408549660374981773436588476163670742745946348223235588918174393190800445255190763851802674828516387239540558372478162197438229099957335513964434222508775212488722569105444797308999400984002985996142549681243297258861741347309866873060733499461599310364658099616180990323088364739272267611424043901776881106584384778622995061409027623214540476460430262069423370261862767679097257748176064475147740734134468445602552470405250152552250531580270546784311693232599275666416630548596447979701206447043374727468868718371989914885694819672437241532873956872656407295840751666740009057649837470741442397782097993225064373916568701031295824705831168363703479342703889199332070772398439945762479816374149804664886247439962461806087288931669450233934794279377845808807741442767492247173242299028682128704431040180891188591973975977670174897347361800399293922584938808953835933365375072606787225666957538489612208277918209897925558661332190232060532198280567543944486728974861479374897606747449262777803177169098206043839197877660539995959039562803174491642673197628437118218303424847910017647776159611814153594929718751248753924490951068726992463294716666097374301738786133877103916723574905800183308033653235383367715032097337257271444153594084135376664535169236774362051322529713471591367516609859921019850497800290907142529674695049890160228151457695248682174427263677675408918913962902365062181121342088066279749917796449269933706843755953147482953691756305623320893114022310475170623793916819950967867501524981484260159307618524788156115987310062292507375101081864156387328180061482135450377222323729541946921769603609466172948862315226542698114640722084133385417378847861076124286127000611387134948917561197060726655500707359930104534513930386285740795621754029744537752525925897366375786874528598001500332895656448921714477042281626671704307551220288040823210565491818558337592063439782701522718247702782557474916816000580930758979132778945370813855893406317919412387795675653996262931989107219301059955093346943840642786100628990965845903334968569434839602437326292164347003553006674018873355022456378855960723762335263025213785969289628808915361435088404745969395473471308638753720985037603325766487899021747959003749576304361080876081180256817357599230737423765472213478523105963613223328147340870206141120091830651071312341081600485947037812574033541715155363063587215773177006880205446968135712700983404956076757901354312537387613290421868876962719843452063899286830975043073670553481830114995164805952094459762518109275325584093195804684679693957717244245892160448109002626686778813205726231024848165846039798547643951012156324412316625380110676033201501671462699322799348845643093481442216394797954727076309236564308038788731866817970158991337203297551216041732736925083457478294147624250513809667679156267130444164004068966003013379806853799534538215307563805551091675457726092607226506776679643907143549524275691776150443223431038331695772163790039772260772089023222637876563359132823836166498626256029584383882734991723460214218015316511050560465377389698796999835562167921171113172672087565734290604707972124804405398973422372880902066998669333501121330539501105519802852203808645188369913743410684667712742919230166622176498124025608384354149395229955902518478034978095423028055754989409738891164898977415740593410566837056262679133502581152565915503597787480141420863485284061874641575875362950088103659472326565445213435067565883584911925725910771766510541735655610242154494033869641430144776258771987789402227247554411965589386547626750585625671829499166371456457170924321391653156800265405025051044207011203984166668436181314656088321679766726937056178062013941204163097563716540845934340212596243222197519874537984554565173840814090211406597261688840322902904879218115109484308966110396379956111293711473126253889594936960566701445342433888256199159207676070396240696424770303813729079972168245426635702984793487401647943728474902495149094137194810124378112279395637623460079810706179196430214782871031912347725607614996063884158360710583849750744422440434063024607621601420246671959540684348722848483571747265808486573880252735304749350316479749902707036909667818119260147432488635845608853718847500312857534208150036473759472470938224628426154067275651260623375445659712527638523519936274947289139486207899214173655848209539603238619073497987850221831085094274571228305724580456458496868312524699776239722107848074549418539303485066664321794133256116592822603485029555911948274261509048077277192312404091742734636183115223385331613968691211402184831705728144016906321397741187011297773547469519529061201888409284320659457063496044722042804077871715620877131101772768999669461957255784703489160160485958610893670513959012526779588765526992278247284478860774430766778466523374034490003539238822109748897179984924765358271586131844465570450888264819290076118463723279051150953554457749440344767183529154373296516143324952657699758538627908268322849019526192090936318029929132129856960063006751626407016187267391997599052714222838311272582737710148888442069447808165213140776141720329145598670252344040339510421088575593361776451579936152739049765817378655913850980677270923094595817234644350700320413504636288507979768449209758816678875642149605846197242554157830168603289660616434076885253131959766317808387293763467256274284666857265247226443494857310231123953930613488190444813218227399476243472775022609072252445658761974281742259738756255034588312338844790987702211083537682841562804877171925622581937028652388272714747801651259065644171526146669587436929925277609540250991862543381958782900301406124504236827398981729013919829425049841415080100361995813609226019787050131761640903375533705567691332997902695449440718708188338346534918791007229744321315007019389903335448419262834456438959871571294885796413104965747238904489114798177404749263444130506459759948396729936913584585953045657888604315608607120483508294744198446743323924466984559545455729083258120572565904895092213885817202756090640957658734412987438636001052348321661321571619324544377143056374053173406528809686608844518277031112791781961394296365187797825116610504219584149707088104972526465760420971502247599773085762559448973558005437723992231088425841532264131386811092734327834064797577710190637211984635457153823536147466813556868670148202759327279303383849651158924544778543895068455394977455978071390681337546637988653120908524088377561855016732250909544442177762005400637358715061613232966420026752595022622950910735284125107025048949351281231560057355480102837687756049354899950795169942271035098093057584307260480926570246821636204262646446261551134506105974902516307431616737425196600926051439753011799306188809592051196969208124526730320666219081505718084273000383675707157786668923440491355291199084721585689504762195538407484833714960155503657892842282922485215959177713263411702917600445466830433235620486940732716619441843612542412452879731192138961644963058044847921222195483985257164826461616379183479214859254565115179677206439574256908781402238912320836160411021488146296383295135043312535665714354377580934128548701988252192154895301875219888778067437992151635724941925343364812370689451613806404277642713783577871411954338096235369291944275820242700314572497055107368555689908696070335451247746467821966605375849828450932044299245305564707074854826608305124546743726019252903198463640606729304696266890860103079358983153873765417370130542684073364483905751327442744135415111737316406031157878166670802455071551365796336449807827473119966634986413173823777588151578518976451601197110869470364669188011230365940076799843287987038313705776212537605113137251088437130741329464997504171667989747557300368022662109352690565534104717563785466976893271459795482771078413303241686456778908318885021852318379560336450651241384244165799157409553649333012293209652562248640985402832685320125636189178640341949012431254643932713751076745021535872078466168454008405361777001530264049973999130950843932138314715822492893957660986899875973637461124748633086239929791588577628236600516492730367350354234075552811213292426070872899228310206444642603213798023065260502918562188414933917443003681182196159978578031258656608976992169700585800797109400377386985747988036578457570197916943963555730803237642472495482640223604896992705779224003431081912090178826804902983999678186164762596561595283025491597981945882073442125541985590054829311153640554497330882736961650738309330616941609674074407403662832881502818575644909178191648776081624006484547135407993944998853697065884984681344536529722161733036888776333450852547679546785650852443838739030032790128965376532774339386557373071352404085779180540828011939800563707409644968209463881990583871473715767637454123144053335252214914321465446588721136336699835547786932705629158797571010921981206915714688769627289348745623788681329924613819772236260672159566997577398628869579285475872661773956606771776995165860857876325965083625736888292463049779344688511249350761977423988783754078652469462299190347739489514040481354331141804094022476127913165199700666816914952830651026162152371246887091260597999136317977156250183683473242822090673250598241016299640332843892800140666715349962176626957481688780569839701921005258953978250807926514403330338718428479654592183006421580586248660277777547771707680406001401456176411664647634273108044131350753253866770033290552541710490477472353859566069280321459508973761048378912981795694587659838094848345027490434337247875507035204860092284256530224832587092020348685956976418939520706858230077407821974882946704151415009587283428936421695300289051178734764792091038910668222596868004016142510149426262138616327951242564319303026208300888984454514016442086674265166497801438939347925881304989312354514180083444879190957655055106574867486581758472235530955241459491405750226078200798152312115245042247178534518697877012112440820782059423308229217865421825704920759032948724141160990124214158198920692366982008771144596662828045274935769871155662478562115970375614403013484420696165554602043074375055476776020274575842317121217511453502130748344690868470825461366923972322131707344559943148655012669634298327292167959481490349995688576773691491555573994443465155025757009378391946207115684183548850721495712527725766446548215566135751038421366984297183018599888096231792138568747581611578737485201810474474087432624746320950820999726861102558409409361258565632867861362099959581591779410939572109605406710068838902471984625838167067380349538636234439601083447440985705903847256934338809775023665464583160380105419089965057587237701738301902789845763158887441194101383322589812450323907416696948074818139927382856807979202671052069963351708063257762585622438925613771757924026376515556015340626884157863278610851993509542471039880528759428365328078797081255001386844971081193483869309980913548342448820178472601131722794955606021169278525027871859475886694107217648492159946666375936401382827329067446411435113696448129414889594808354193050882569996629453609920229549363244686981399860612128067665367197789755803860733740243875365383130903124448379712417496070335865632598927652051343581336689002101859891581035511841709768577024649111143394613220567742309574067772446553993981211515084334852735153830406662322525230301822693751010923570152971371289420525426244741825918061883431351846507606717458387490057255285953692657573336394831021878416374220472698938799915049947198075176262649240582894389125464270528925862875785087452038293608587776953139111954239575153275303492585341083829302301760737986197680897796388484127287771457047846657262716058917947777912601478001981018114946339390736365090126525965605379895169510403994671031747618200784808045688930889391550473028804233082130012256915773261829156730764895661331386116067444319205388829867540671743885634940530387186500651557544526543825474888779421506473262610343154868803922084818768536510419639046172972175375296377062167009162682108184772264868316787518103755047782865253303923253986188430508299527822204562605257235524023917707725255532715169957901213765531516092660535292289706330374919861509363124006590660660948562113216517259395241026384026561645362871507327687475451462483530028192157756152654887527948408495980744487339966481696234355174989123929398439972792869942426698425910334214322051501480044300584675727362003606258564164941114728945146782573403817767630765586556626706785690074603937022795212201966351794285048893747765924753757353187056005919773154709278410896584959714438897100029712290579698174437779772185786525761481462304971618482472684138479373420080014952284977163501571043301818856930838316062225550736405268193117262946550377984131293552479727998900501397785734023240717591385345860776784014745123394571859292764763803150949966363144425462463487583918505218771966474736874662958129763982215177409560536106243180468007618046420051572843333721975905776599324836280123154223668904321039445026484706158609914267088038012677408184827075073417130494118520214953314897170062506977353612399817833928999502468521276903406109070791417608250168342786857561623957690667037936137707457298969991136796461496324573131975427247107359631119668152207144192223573364111392235236808309345379181580361997111225082937865893458354021861022049584539093127058345065939121092782695983454343177132918836132991022656267330730647807743490786311486857116378247303988542760479571622203433982756884646393232363718691928948167670241739526588701492193751485051268859757992666302418070646535258939846618946221181916877045284027881370673868301382337782036397952728116495037206405260364058217256784417269540527677628109158679239835136778728300489293705722789767310068777328750193433233760048415918459571485653497320231883894201023721681292215165088273847422941478746994971453618627357363410934348740337610891128979898501742546677968267242041266696835650624819779234920008276253664169107597173431719211077434036553210330038002921092998011852106146417433756212867021156658334349846591852053373796073336711702441938962685689468320848320762228792747257440326940304059071440061562767091417409109030962095499516624443624389054253176054444463448937138776587018332799096543851853664355281624961204509626528075928195790748391257630605937758064051415463343634802642336994883250041905879782634445478402161511590745030767611522324609279999119954089418380023442282416985912335793577768609698715775485698765881997431410705960008301216447854410675278250832401111037026648245215711814325481062941813201488561199046938116145690016262583578234348306459466076431853984769746316926378864481883772283328251554772576888716363534030060379154380809415560989244851133420323575037385105155018592946744146194269762434641910506820832590665962289135671450709718694273378670632981881983382142796751070062063611142923042391177941906557532709174414839700894144411230985078866816267413894722244831687480601431162437936404392800785409130416944001559653594540189712533615211775798295173947816171395044161594277318436712074848932221483303931166499549952100075032202325725790515638508015025030170930902292720806969736559162557971798416458094802648713968056748366349941961296771240875685959722260548189923473757626282262310516237103136670493192955088161501338666114447887825674306468124561972669541041633051096475120652949506881551853049248088904627503645918601771846730503950015020452544699514389203459868524284139331006906715897414575698719476642751210317483243600202161506955341419510076871053254836286610144891232158658991537713537552539805625442433252291041209820698980281179839531151656390420896039748419698903518806401770152274215663300441643326861787415461312663998215708161934913003712119937423949322914692509920498131596412692199123863651868262471613352793570466036330802699883804607285425633482402469570850029770385866792070264405449532063579654401780821907774093045449723475081733718748405709777529672244009367202660660613278176155131657800858148970763206505250646234770460269942724565999433665973711245059737278652513872722674148539250985402784767912156130406093591363426132697060359161898726977470748907091181929082764468486144422575127968571435790016811802942393314014036824342129176879161273454952645599447953224316046621990113294471583198012414546395451151944731296169251532700387103410650851648826861449347103579783111149583361044126515907567335271873864690269831229199747103055869257867605511087965407800295213864104395621498574694954793698544586219806239743553448581124715466133814229576316236708056174904875329093965175340881094470474088259815930434458407065622265476193263189016153191032470899042361828789935570015149521654633576302217210307306432344298058513756125168069716186322314311539135723355791639784461618754373330699694480805418055748421208721971527131127497552208281429579443165411994633208131002886433526148939164213943278242833124756805051965062685490330445507295342415127432978469596850122501312327876108124892295293692719169808546373714512223344659220824469277229485812807529343685644625268766972690784588268153042821433570471482698244526648492365670937177166009412576887602782740438914708293939487038735651851418889905035239647165176805183174937702556493804365825281438479303355720829720027996418408859798278878662990611449172908557496165247457400737821297706360966650098427361127340142695220303086976120305280890373784645979605290850078859439008240460265760790997197767436956658568315779479788398262039547057101237310866057497148533947557121081387380214526629444308386613842636025100191634713336554876933316351133280331341302946493091297043420824229529299146175049421550560767596843876185266867637553297395616928692716021431240452603488993095927935287108496892897096944509072585182817324852092415896392292395752684289513621514489707256510683390328899825234651089789662988060673082582786789184262396407487090363586084201770377913862138916162091997814470482275497552229940674943536588320306083988480369483015392122863801282564643192735982931542903136379154684329095341941093139840783806772801490626862545531560614833828715272351602759505177462481601139432857528682257023457117252623725131335784031524272522303031135049613139568058465037365548564773620504727943839670730460845414080642405256403070460373905907472372614377703691799333653885896450213452027424469391090582959839173723634092387549428286554129180991372898040766885174610426308677905314847651929008846445297673376601551314018876066482028691599609157004526361017825611385984810748734429885382438355502451716254288959144902392009289674168785680712854867602920631425756312682152097586313617122029520492514118083439137755790449397046691430409830948814467287299753029728220267435233760498602855660491203295375104212740883559751064538199216769496206974542214349245077397916856337477716965305561068093644440878744521078092907333636243131639429268252425922199106551203236664553513515201479013991608750416571330172663652884120517478126605481244343231410778118945360773266312698487185107195672370297934405468671099384008671820704679842040638177922186735463214473503288964678419337700399714848885195860109303593252179965798512765681643924677298574580160003773995505484771538978832201762734438256358675825192892126749871527621743762678457994585176397614829215769409079751279518421509989654984884758844018318596552133361736275413546035194715758287209747881872391328321973129265392790935560246934647063807953645198393378671893386227134845190215244963653682300367874305429336983432052171418647900168432105241145758874706364269579242608662766878588526801794643038726314412749144489025850921378431145074468940242328332111931070554905420687425614737586564617549456973575446464886795664731886171771906435872509199968462898839464883676423221989022802022709309264750108882401753133799025462154674487097516477024000527234280657411864752108501379108392453372751935100148233090148203023473403350637743670086537943779972121202105139970604395933337601031051886774487376509725904728656415134090679240917079251095923562115859535488640865475780203133171121804034152951206528499019699625488013365642555537194314057404814054837338686528348619046333421667579974032752005128450205395774034569230441399313286584191419547345518537230799601333489557219370683313411181867160778133991952233413170366657161272200987837947728178135747408986534817495052233502279524475747383049026613807674473951039401456863462067719795616457123160967708069406820672234733081380599704235299058090651995502491582606285789615049914781624825599680308226695292074439647743237968970486971308254653830220472271248735450377059111359368209945427860514517534942749124088366198773023469235781430211738994607847218771963000154471851570695735143458349429293991238442538666762014054531704592140826597463566145874525072484495463706445856514552271179968348235324803499571463691850183803400236396584326834451549285629765496871846400576837652054879371876280460901625979180758626209267110484801838178646870343360867962512210321008706042632896534983192066000938454255580046122894914162347971539294562179510640294445835734027781429909650019273678090455155068323612275899523720433372860203514322337834913979141591052354063832660265910051961969744192971442157619084613599997266423671712098471652771280533592430982935051384530030931041897404620417772061745073914503848340280631284645084054060675277368227530704800751726032887723537662869164215451134470158692065283077226874227280894942638019934343284745158268271551366240019796029813795177675115841638833680157582795661024621205282662902974639953258467156721692733998624084885925660560799024952151138780648367835850231063685207231216369159998444991475600874287493191433860466334070237684243683024023930467440454787033001697173437200602347530644232734519881674409079743472658460166165339988779798458058763820063433562339596869914529173073091472157792906501287775062494731452813444621769402419792324272837246351637308163980127776020186156480242851224581789154105493564444158420166961909893861158821223852920486143779256189903407151032512658619012094734487866473434055961533697040413226262864102400726423434373328908551088180942919646891773947327219072258279646387394842304477545824710107469711840762889706003586097435241720786988094315612035338164065836781700189278113729422834582847635528239818638617095786659170808178145215626864433009270910217066584900185462599240621766775430843636569973417353720798607924991862231603447305431350929550062939880731025381277559284623825361857154707274745138858249162861901132948241511536249186815401758564557138185240589878709666111160467174411615566281741275766514993135133878764724783602781535968175192963725092450435502835305719726037469035850211756187932903270644780730138806770501571839556425865782787409343569660760491325249159615149178823755191357426642547161966004409342960099147545243937695104112625347068038631655107514662328881162125920876479125447536610698506484512601863631524908981520793574008566135317044125316708980808975620666992366164955365969230540800189995267114283108762328603132621590132358551314997346359452093845376531689905441706689397550245912088836946620510031945547039495593379934393785227773664132811390358550189030077956682991784462480066137125215556230656033856572668164568646420829972923255943712004813210793941466198002844388988707423212253077676808320599968546147467695559597972178480272316636138889242551980075105303490684249728582201086542093498455075323732323380763758360306283982386615783468702560837176868784778308041786759357317321759810841392677718384491928021975559889402241778755584512515263528849736405893937909022730656816982126101593086272743202453328089609934839726037444393502982116432884699626910054896793595277135033759997305272473874024769817832637897215367300378939096492242013586646710991954501572253026799204474580112316999120034424533442011525764773371219039340080377226155008209385311181652180796507276199210020149657662413850450573853751852658077182448856228112471203118515941114629913353911697938601442302276430738880287585042956559956828454795760185346092149752709080727119100515053400242992238896159221483867465870538447153478366869271228517982984433614027962010884455541279074379609726003097990974824376806225981336443102470862180320593035388151735370513247612418120658012043713244405459073513981727967651012920787815400762668662979389909319835084712759719625564395583617711784901464458571542549551625020248991626674348893709316500736865554443610762551396346869554499175916475882966143241150744712266483623726474712732460336933521368554355298078134048735897396917147394496497719537657161600183583253335756076185273166599470648137774751927502727002138756454320610506876953278851190692876480471200168451151876386765047619459869894921344912605083652088624379273200515250007825203249027962911424218476491607669126981800085791415754478225842604736948099964617567644131643410080231197462488586965089679082288018003855552531003159179108628939256779039596302618124908661774851882832488122062338531335511280657062037503532453876700516793564456927580576271373520412643239368376038494704779821404062794658198160804532726104787201697990373056117572028280245830834113693569367156210921554112244613431824126687333070947440059061475709828321681381826990439121061832660245096857006919934532061235417422176964617514203052952432554299980802705643897383839117192035630924598633207362903648713138672317519276641307059393883678622687867906502663271301517399288459400700175102056944410769742205996811565926307547071561142146372655625318615420063795871087037526500399604656699230662408369570479854366476711899347544040693394290359975566810744462721859479210151110979098817002327344693439943602494579349227204877986750055104530980445871017557228095167550696183327530410400434437368351286175314627155216919678090990167959298149411439611964731493244534811040724987575521057402712947269937881005584648995975239056949935386347442995996161116105849843701882130031667533296187454609078287252227527148578039404884987297086518631294903914911872462179245509228200139922742577953912766728244112162265448628381073792352520917200905380096654834098714379104415018912225187642592989129047380620913912298715915526056656289591510559288337809603656364654443166028213727205519385838986870191498963795666606179937886366703672520681726603256078660768974793413709714415153517095730762978335588611982434389216433211277539102709220644449441763631717594391989173316115241033291151176427164693617812509700222724962530785564425503530039588843880435953161070573499362415515771553172724180547415279311987704568905318454578883520317430669509663679789745414355827948208115749141436433701864643005859263458442963901214911388260442298274981048518818648245535812086267978540867425522275135906744037854258469613463451271173585499453700717813770316517168032906347894389777276764967146131163366517237146969483592716314948237374210162232442906520218139500903944225912441711598416431098700945226678234987607776675729307129392164037293257169225688119723739039648244378844707494890429686493118063854203155663398941579751311905221701613126501955506934703441277888894934452563908579860813414897757945602236235571376154979290128142422213594448728748399495262390269908816054948530612297224533378207545689133272771798302850319683034568143868166982545131058077478163983786469719870313091591785460192209318830765746354169695626667360894842303351272434755396023413108242797323689551033658530238524370918981686768832534468211516306387246842979136946407739747634604313151855139791150258181012045870805018110958348009249280957110828957507816226479338568980192015835824068832940912849423339202627184347701579253477869130789686530005704480884976340295741221806686152949268912323113321864679341400448226575790266880625257194906245333171586225967479395393264172313623038726459106598937706822249689398048110769697204046171962931951134219774516913397751135173692213322780716205401071055845872479861193966657213160251425623147403566465294600932017450065959198470354205369873467098196241837407625830101564562747153023153202291497757667269009029295700374629579806416080178468440374974729613284118469102355732262673005668080488977289084245704956822019846980669430184434902250081921270283283913951631541824395737201252036787277847147033994955317485774464706018101480557395894652220937565867408249296811582886966067263190525881222111012096983804396536403860448584187708093239520009944925124992645075630071196534245502813682278254153076224618971316158265627592317295019728636181128187152770644961893110904675772554861342922094937329720860353996227879077329869889337333817576613390872776251879915893080391056580234467510897245008300359982903751466313021238126797441588016405724525977463444860721188346018233600641975930741794314556653047421929871986567800459964309782494932904759185961280895973714138001597267597208560044140208839337373813996727919264239570766922466325682620779596621075227692016167575439540393045860602509872478567641547730898330528149604334287561273258031360029214213269043432894857631507613583335496287132774925731044863693421962274318426900753663745532976755088381499831906419861446555587313550688369078548035165036409803013108637101056631526439540203264071973470596927668253414505366760499029411304081239455172958372095286231778665311687612753153583193681140286408697730196599398001985868584852453190503190482455399320172764084247027813725044335104073352161052403997782120212198907196708232927612959765662715897933374695552070206984014162846872816339013246738342291823188787893032479174264791553615180280289028532599120360379092297571530018362097990456749127064268318288767530080251705698263233559967233361890078352873695787304193712874740890101161874006416604598254847210203314772752449260956063336712337418677846004894452607468541377656731154989696993138171111304288086535121310131590000235183891085396678905409061853955912171910750260760464387111766526915384661096485886806634886575602581467330583271376399392446683993750375712073703683091720393953969615556033083212641232935109056270797290140772027209070036194161198857135421462891859209003963482338599712180093435798415090988971887347306429572005240297140490999787589099880825873366670811645718750225248851629367732606547989037461092389087764799633715524805996802020179506659208188882824676706067245945393657160130939659454683999467949611890865825712803321150893103612227070067914730122043395637181917414947884772198232642873765028854966937440720744612515470341066852843329488817622614130119406452475637088009860109918464088106322674048284828197091428618773407240102246646768038278541213157506978701668257410626213751852595452200711005943213536555610758204973445771909687588801508402096446327292702176456158322310731915381828619521234700221575896942047556374942014836480285806580872152821798570421318767117266523776571283255456247361673150355678813598688503536224741321352633309684667735828700657436104033874997630965679645392420896210232143895789110469340545382971311701974309695303670050727690073217917012081145927791645218809639653168116428467774476051374056000495133715078335966414444528106371945293287940583826894048658618383354857723684931846701953114645747330768728606035355252359358015888257889775891398430478764095487068196750218723672335648044263662863777030896752790006794905503878473298181341863850428179225197185938155988598766047408262003043025484210386639826018297976817146686287105294729220412339935705641125032038361585557662313905956165750274828380247768379306103899562731242141030272324790717940832439695460503843078026625912256360912362845111277585213250891007221614191566223625060921694984075488968451658836695389885081210207928746944050623690992405368727799891044706808802380340090035661211503931472763112353468830641793681461956947593826358635552186881346552886833759590322561094115298566710761542777992112351540823141273329838413671755515653652249889529361451502706514274639036293472145460876980973750310893227147420485997894812900321666606794618677498424382568675946134430037512598828928130741919075370466122759044737521967495170717650202960607973323922688265374917908423945627864940419839948950361994833626550306538374002744477079128015667789651275361433783494017746351748227262208415078588161391371095149237184535669622078159477120801144913870080709754911408198912602445639339105187750825906710696333028422830444310385382994986677399887666410926014689598093706374368292836190599121091179566749064323610591003639800210651589538395552297259048043503894527118278050232179619128110149659968800729837940132068656833757286038301461461563213507692195726240080732538075807501585408949220924172934842933168450174709384358262443888763467123229923567883598303873744421522970274662370007899278337252521931350363455920793302205909468758506602435288059834721494311063764936641416847233391518806640916153231769036261771204703166314549755048585383704217577589203147875985750785657742400817041194288917548423349171100662810529535634831704769209529375532489091930197452378578522115982655965888878242830846594799536870666173625761114016698928368836912109006439263485532849140775219343190428377253029513255335086461222499540906872229102127707349403222326155278001570152804132038602015217716315908951667458773186406293843234345781616214087536327530662207093340659028864051759734155870932216908045309709123804627963908695058257116228846173088469665734127668152076172958308619933973434159967298314993407992624168478541029793343294206613490260408775157103593069846918463099722044718059119869966403831923655089833089726669963713895786119707238708541525822835542388951619693883749208943667015568715759677403425298640868396227141080544340520918732965334501583742088443008629442169662750372963748359932134885871225094020469662278334670624803910544972013648273898188872182149007139596897803630599726649719795730845709978992484054143035863080809382372433439060209716600832429767415618081636274804930529880515916309755456638099955238863046507234594727357099773128454411156490355855017842182884383015517499462126192633454138634357358093527069305737492363974933848173928704925019820386273537345997322868052966439522575969076095257571465275109395898028534232116003345772470629932407246476481705405795000227334769324795542001493024084067158418016512605271581231321918175927749009873368393023240522030611414896631928250129576900706943072912998239386417025879114250153418062700951916436521791245940058751209239098640127721992630276096650113827904125314733124292412475528026186456081568746215086952775292638498461683206032932597804190802709391815773838109708029043648874866297167462038861168695976050204529052171949285773769053614876624934895185035510129320162496773163521232680195197129814603505745563883071849087076758823892775064414994832792128562088311827830953058679482535326208744514044615069045612485220688951982246185248844352967016220550625498432973835334589651554015592983719516564528109505088158513253094982141914128972921208810747951985109534288561007231046426143889303677079557048090012101255311360194052355379845016275676066539404596894149620451072854972255840581908412607615369558814522140758291022998551143283235325631622919451519549523298914574640970320582792343834602085559147492530203615105519955764019126594866511977639059567782660720180227353192842225671793612882723734468561505217108111639339554626969960251692763568894928629074200505005044915643378813280153648978029796585504504186636582356394143459669352084655327643520379699466239466970642755791813953604113718846153728292611337581498476234694996436242448526705711609550844062588600015022350215850524503578273002606083834819301039966385346159770244054325614969366856428956654977727750716631633853799542915851300662236756258536606652747293666008946697893677120226108549240596219478006786269212930010977326381146569873588388976650662270237217913076405210897795250602697752991939909486706780646514284246213529575831491401276183129237782500865941401462138176616638504951262367492208849856486675018875549049076025825819205443636721683621316545264528341356663151307203878966600810138140055178592220558467169462885928313510683505735820507513095410958769006347947000122951910543021067069985565117367793747949427816945397829900310880869295397943697217504031435769808543915611675492175569712484010017226413279670777804947915463200477940595970350654308891922535579247960842661539694577271136409380577787740056640846457976434183805613901145597586096636974204368595197223100050634976462354359925991158937672838109281016758648770410628776243461007167499568468615237984103471097944453078759728849554010779021675635999040084182933756322740721533813348707023863094892978410245631946308511289874601427741681930918741849065903268649549368215214372766529259351766266716564483495107602014673572143915571677198216692169906107198348058361075508210298630427460024747508512835724751242970868340602058472253196754586143723354434174306178653642470885078522796062212976258048767940916481820247596441670174111035151253087774465392538124892708882183360685235994041191872716279315930589780165658587372265131100472567210123563131963109757664429616921962999666798374060075465476545027304374676792438582681708785652667368559896704436569623671310794810566767245107099203320381193019564966121486499004643689970728886957582385940816364215605034766095361068322105825522961443012395323679317268390892400177842704140282697861403548988640423949912417867942072124881850242924783690245015430502971117233462350585377261765685908880278610938786359346755298713393218892820395486867999170857207585017879646705083349733543319228106102327830330785001789522641540177928885692230338614874801781994449565492212274582467325504855224837104522154621598230203427505089721498372187348619903944372559865458277510163518913707777238563180077463458732688132437802415197810390142370787717350483557747526133125039327508780228452822925447082835398041837381077246550486037616128832397751615666704975834094287142729538249790044320663821289109200324351792084850188220182428918113592096174938401025687829475914741095543241698073973825231379497453029163895909862791879786895610547654321255223136582778193358117916988032388851611207838698156938329206201371896581658765495089270649738343021069770685801913588247198758530348370937181409020039424357799664290021326244106578534232426406385413722808886659398436133250276144231748803878484571615833054601360521822665108917464871457214458860793192281963908110071810432525554616119454332203575512464011727360607241048260508099765049402641414926885855227627860402017736233615550610937839509538971639755242889645263055992333766136996578541527686498526774411079580576391665472713976170142826318607873399389783660351251033545491671243796035931660019105395771847523573093069998946396441668162295543757459110816150063888865039615632853979427248957904486409523941441131355304236793316807819237459077330430299468266283755544197219866580141248566939957792904933963228816112025750156890990146591209231559960917623285421336693582065563966118397184636015210898626096549881545190433017911388601424652884376659353350283436616533653312458000868410246826980434199294777588145745715286879329356431038564060875650542879309305611632576304761545964540147076365039317067452430125557872061771108210066582022681717351857232660746681672176889915112114084384848505082048968246697349124232191168045374151968104908887570905752564419709801814060796616961133754221484160699730714561822872057574490664419958179319626850807898585022946403602877354206734128309855927473978565251086426860318617312215600894103028048040176544297530321688905221542806232798471203305101664717381589019693602330880670299987920162326338861561559171054384258039166708419114544097295992161856246360608844242428225791709066195305063542181244346085224958667218916495990331757119488375691359633896827592278574405718023578105795957223959349928036929901889631902582463310568449536523098226764809417864833637339485484975600466267581372268594992038634355800948769501916488559544403992560805577486082194712608830379374852829363409136870132175740403327450255129046966853669535492934786021420394041380642818658396675874895947883588074786362779962297540943775606851967751526820002856021117451527075424444522139541172267240606010039967599303199825006905698303979490838186535437741265716526956417644937399439581873523902543960300806755785223794478737639671335323575037735468978271991063305946517525980427238414416723120828827320884909890633806189621728686190552229624201588413474150510078922271851806792674845154153328069222274247300381930970045630131861635229793947012353482660960838068303302017834727879515566801287302026032961348332036333176934366299271814703187685572624745874135510595594427833514045293797954766474171898734833178354014411350153639446381427325822609772867779151945309303199524657441800894834568671053028101393071333776612879283735745384576351226949931453426299442312755618742443856461818747898826640327142689928609289544773276998101477501089002391597673160390015537334205730959061107324554433590269597903738446386433672832901106097171191896827073519932611383671279341563354972277730066899249060519223706877423981702940916966919884834492939349381105986429529345083281204581606019834164272954943085369708748520257402244068956413155089973541968134165918203463729741426569796390020879569316080448269476623776494885457750532789188010529778110188962398161286305425039545667639451382673391885223732189470485791276780062649127007538051890564858614077667586517442327125673273248949303892917264231690513639214586526884190549480976055753033597968381692078700438667219620847316012924885186042836087743852963915879570078395748465487780356468051864249164463568946421547627207250541857581008253135679005945686031068873277335764845965500088568622763069771090455994754921527726915844722543915913517857856436654920813845896140533103957065088158558554193942968286915668190619557479666353067931000753068279808550523683484185667016426552966571506060138618722138405466756082898706168337248851525415987492498930124515391206995117572027510308756756938133220407715148771323803406002018537382886860835466531826460246915998655247838723173002922962198727878217823656978627284632756790894297758289920154782391789078426552787045034697828377378421052273959069241790583892527689080709168882193398742758477110637372864093850938807687802244438671821326046032015932575917789577286169758826003993820777199229145638252756052020704509349688010192911059926090984781347183840069274820599725641292526826250509743939092831967440113921871666393614674633865444650515609881681080246662577531099922595156813677158504857447515774420351673141385411747433569128174860293847457458800485203966803168155617797576091843392638391287301157820608388614383632124412011199072964567356719449003889037615742839003911662858585079165157147615001884905841491375375509154551801476065720393640444485591044833965883788418044932475561251400231824445548047003034087215322048275776711999218995566383845301518753537618421311956258483294084600628290713273270848492903240561754724451179070420265480156668439001586998385268865892828875149805199031098309344115020108112351769016101028459765800479209617270326808805550564030343123616973945084797455507868835193232486193592185464454472491688357283381119330359493815391161878426605595962322132353459221740819326544103686208777700775538325221866088414209179335878365369018071389014671396261091741870139041501902091082605703715273917817976380042535267468366242122636672927958957479490422758449301485890381083485013062276345022381595559509984498134074580335304276207517821032012914844960341504533745716705271083635457288174784307531318988245468871849534294365380146498950481849147638605299209114046713716955027544534836301175581029743249025721055485052935334062668890976214978476747252042508650760434701283833017420377954516660033044622307230422900185153796439465385998346652211114774034046625733559282849122084112352847600767042439107544510210567158691239754250890321252323083285506210106687979358555374939906736558125743493031450090339225756534009789331078278902183790104658975835992925368546296479148560991915187586532197192023201884501767115065124385009898855781445649537963091623865445014763631162583205499852409518678369750203482244848935676963514484643572844389361815703509391505831244577915205997635548850515093616309919782707765269516497309498683765704720192688306817185036447943437329164726649019455720333024613805231079873258503763280765695350560422644698463000050662870169697764285095020174188033528719582965167240448145859077479341556692383143492197624696057657671027134035074529879276214492108645811655784356045808013248270091311972072145102367196855816073899508588255613647995339413142593796319226771264881548968879850513648063413549577765346442957344349298563664801579901450848675601376304922149001613367347601845638866805735252968364611348098328141116351191239556694011432239454413613051553087406320629626656217152825693311391450843543072844684708933339432534684409254359981221593345755644328248989843732598758020598687621208265694953173710592092295151638581895565788915540738149966761437854256030595375388327052412752368246983093484728152393314294325789096102777853951479369712803705508471131938054220609422856222394554249830468488048778099592130658157476573672535005251247697694087356931758365279403272052930888621236548795187452841585838638629046058777198658460672862902155430171534162291453509604865850171595747711023020620983256668363089461440903018045433344603647514366288402444547949750401330010326971406651934266473046494565753498233290952106068448257193493152345010897771343991107375471972452147443002922933266362813929938583931861930409320730738370672317493670872040911029991302279878124626117696982572599032297319099108779966743200402895987643330108119175688171100128300962906403780128591943820556259742083378001853044738002958133275934295137104622921244248140209053260080004893888843996748198788319774976649574115603220708028378174905540432972122554000600180716608379671464902866809579272978047332808450555692718268617712279582072515683693469007194522341912106915083374428666848738584322843294537940899185077394034528596231453976467909414594087010790175761957561001643949996439910390625293825002170316827117443915348090460614983930551690581315124840338151386564868158185705855408669366036423462494533945685962185593645411143715323274571774476918570168389859344457422606512569061443885669446352672506325657731406076391060607286460573282265381773327443324642664079313621764961519071536903069258773284512802427396070381355753540954102855007476576242220323636870852359155720525968254068926698294121436698255417907428899306554105400185978292326120706950709953386967985114215758375033557651535907792973844965807807028466862317491735947291471176728744509481144706708948469718828001401377237316557230536602780752314819161395123016224828911737505994527187620298090202091281550124273431745423379550268860886554234186920521360056168698644757549733277658907045616562225417671382864226500981535171323039963885289371209435365850946497625615668838480753707555712416907019322858270427402376392966654193650121962770635773514353019341153654611624404397713438256060725607705731883118719279639095764947161216707648516656398586015318794181520049309268368017203154708496152004686403954108952838423036396947273717271996716596740514503157387981751308514786556433139925238836415622439372185687369801168555740352583626223299167810387392133863680106533032528730818808383295081892718658807250401657490111741572140707318862022297025537431467168969179114373671477526501522520299827789221993625141554502941849029991296182835873791100756053586599050574107596880063765662118208495810695833263232045099363483866913533321089954610488111196860667189365882108918421859748543021028958089571634790882222321232005377607331810450975618995996896490859915236788012330053385690869298328253568615390725741470343095914205687887207938777947006282738609911742306856607448965577454647434270350937332071530135891603605436879887148264721632819226566272747585200423786536499097071057635262142579708023224559497117282913949366419125464229103049906008605579495277927228969588526808132984402628745504007186324706550328141565538959100361829634123691542882081578512269012848151785106320803321841531779415652182391154864465776287772571540314373085420396473370548773617678378946407808386808823385772585883099226947265530632964213094570279587186690373219582497190121986948770175186443338954694031898997341419602591529169821348678892371518281764274403733221576330116173494409171243377333100363998450713259949821399689052440109504927733937580789813454068633629913791942257479322974449429549155251433157864162801116525552227941897620143798595862776458153832230894200978172093283611694795819885666303084356249993842695884120345149408894516615567914231862929671972977709518191858010085484736209761033217143161357111930878772771669918002667299375163211254044732619435481158006898021679823201879466379708023881051299340774879568413516309767955751942718444008718547884985772307719658901354446957979078890477022682700149469128197325896353244651446447694021689619815451750016336715639670963171499814887465830268252082240255098198574623898765155408223925180448320886776311880605855616369896750890674580864341858175338694018829692880124315226170616173866308539991155780063454638834598849508305276375573103539288182889046755888511612661882743615581023591721901681306161641674284104896404269953442572094239240130716670957817669041419089206842319746078017235208612123225333856999778884169388145458589890902430978197540336000429484547176272764583111608362276885594421964480498279634481577411467999988338769989066465720166927490109613848624267139720437394768536378582659362908470369637131299040684386940413365522394927670628272229332162515013733809912117587692393221362554281719078897318852725738413595823578999840326464228444438677571270024281202380785957391243375851674381354845362033986526561959665933042300184357604398888169699219947271030580687731623457652104133226924244234659435511349897360958856805711538722051324054031847297510559090894907001468829373178524344329685063949051779297648998495599888813001143229878087804826696545229370194789720113371287089734493245369962450107593229411731938043452847204974827862648144887446294198822305103459872258232560607208523037770224340564622778834709706563869941599025010242792231565184559694776615596708975250810374843562859400927920522169983751335385733328562388229168467828241381640844098323481359699880570400526270826086000101196981910497708069533298283530324013990572049859385624781916093496071310290963181024569674013227040718462337959139623959368733460217417936923986514909439700844970158590597617124593425285639854605005701010196121262931195566548977487800777303801502822600646059757831947783826489965435623941695332927847539872543943267527740423847595722132016538391162128197533767100122815205132598628158946392913841203497173441910721733362760553107997265095821526101970166563520513320401453933940499143831237983762715062034039185965212296731570879538245992359192606477128785997693845415857384916683746556374021483305971458746715734101229327703021877987665882362156365000219386630292324633080527847227912310928602856666110893447652533245418424771835502871190586007511101831153407159106728594599834273796019755418418751137620695938984436227997950916826488295941916586203174884646744488988757191506592101219908853247808223103754016130458807643937203050058271674133084653415847127682965460489150133420392823156827198595934628791684307876986059372060732164731242404229128348866160085982220957618288227351592551777089723272359323944713063546714036698346103551316605838213447986743545515923693714909834113198702388026360263005378219695039409743057026516488275640382316628392971483677086879033090826314142628133454033744738646818499705950565742802015686155729065792399639541667647138016822754384953611603391034629358474562565593191106265353878556264712570592677927886516650199780030413726485795807560241704941916476120937307458610652794058005581539635394758657804962702729806857550713182830063560859245242057651386409559950206026246138845818925886773061060536635108241163256370192769889738858712743538766657702592000570273800363304980035607041691590382620513460946065659693604189764577717106885027201768461228603914532487517078108174463003789801051479270922756034248257834014736839578942223748595361334141775694770692776580210411592720311372067048793380006476025540043084929102681238253891677758413660779072423853180736836942926326870761465597105214804087787937970355622395326414456278556062191187398937191256235224070035234258355729284278562327506179543763542912188863026649476569729594479750546352970002022115012605453896159777496373155966435118440680211690119291099350822691535068181748249820660261710034967795416458733117539437658044309245745789547654440645856791772357014219327320024115527417751847134330374554882095099789749947932037100615898779540884647858110457920438979518611323959643536967585328872876893007756646728577422481421730511702795020624798681124944499168864363620813345367422608130510955370776820245514497321759851034676895596214035962849722426641191980151410517833800894535240809159944889710433044625789057102687387859153607845316874619678307129143638144773741679009438915351090396265249556683890873199510898370285353219241425716403904784869416694837416121493271333909802829933749999125543083580280635604539456669014606051490549534186474446351552250944789540219710323644060620612172836104692571097064399847647132972028720464050781564266453143860614566550637314929871033189238639302695471608717849162665698127125466105850009835636953851798424826264890611077026204890690857745121989904007507800888317529041841975577212026285061275645495573060151913692579321744338846232920728521427465091980810298129982162374535781437600115660786538190927858105784759476722491505857560287179650690723459801598561957682061686058795242630809744867052533965512217807809649891554301574059158137836997453436771548734700420584558298839745048021029148366557328368853438287385831410625885979873282304003831289756271325545104225454779975969694453410104565354859430801528319982472237161304097920501081602302205295895940990306525285835656342620624086446658349829105099141275791780781756231046809459963492071264259911898950753033043332411088365722981476504613762613768297391263619127600652042466967154385254061299066022977378990137503962381703839084681778379440772586704136928648804465432374896409319939316122456704803124893117168499970531558815089994614369891728372867536451966269269489538147934308411389574818517140642688733465991900898582733328589077887710351161608652073324609815252080223037575267900339446692995434700722909349463093234991889415866816567311710230062944422790751528550931052461219110656822343230078278040810054288572763883726635966614843826263327554366712904562567852514106544692050400721940706062104392426671457543161402995194215463562539371849969552863580935310467443849188775803471873094437273654562290000509231743203697735066053897021847156317546445688344716988472829096149027902227759444355310827976913693978177990780858740960735641632838766070720307273355926633070573303329830969645484737187078374367999627801911222893566631685473945746085511288242664337156649116663542317715646348594463724670490397730009799219352198853827774554556563388101087413932371248587542433042489524659883068884922731746013595887370450434913223939962685834191110056933229742952132727978010135735450885689816464672437753250025970341798552670553454422810866920281077747409062791536354596995428556794197501019985449567615087481220987912663850266225011708192888756078531620808522014288425460213648890413149868040180872600763258733986242664242007411497992785435014262827394502353145338570366446501480420162539924940102470767039736929571368405333076062478685964707164891861830590169435565646588136177122482330837691918138237440712612477118819419684851059748506481344265417221726591233613793628446285116437827327440603801617592490616176745951682208418683375230447185906077095019012465310779939401218608248189898351091499692000275480323675848315852385626228460617281067711607605103015194048100495118699222139132068484792517092632400033337318676665371261135207017067345666086494361513543727776794951216278383542913847359981728440356878678717084309370150282680376030940259472719230911330187324357141300691734746714023627511306001150493968021987219326505885470329285425758978451366662601226491790092827180466774639017667899033620574954527418527752802244132558933730206300311149797617796855114378586828335756943478409527367150875458881836136576945093260818218500704796168723655218399548174142594152259423141105945914186086220874484945264754600121756983800811021206887450097258108795362419934850148653039422727150156689221551608932461290969696209104540960652050623913086097514316996961543902363474840745954430691239901989074985279970448650912366141848718757142875056215199325422630554743674410859576760463693436423382219374630059081390887218363423731809749984677969787698065510241495237208050688668135789486559512752936067612014945416193214434318190634435652634418149456938398001246586689151594344322642808744407542128973496858725796855350440617128067683686860722526800362360095841584828384392338953661425274409830430656020936652675238623743952713848410082677348893675896354301963479978907960983298851497668476852753624870284548329371928234331862204327380238194145057062033692594206757237984461256514651301639223372627294435750767396180008540321321789723429544306406102449178189287966592650531399145978222247113289598282363882191331096358555998238616783256828000952872671794414543296741766337546918587609364074444920339676274235313110180250793632017691439340533575242902906202303685110620703498353209360660559382663432762264945196871241518144636893230242746156879914948223133547477228093183769836103591528283767354539018109293139170833673422846621422710204040816672084651430474394899845437624516648283020618888261150627143262587521871587884416075788391772035820443828656494703861103159396511336878630881066230352348675450165458904750159500957820771444978351698495649236377761157413041964853256559926422946502445400338131737272795766563391984870076298943271221902743828816767393903347462485866018729462505816735163101879653149493975039216785989475580360214276550387019472606101384419346709873278939533334409212616052947072951640549418978327159643794347877950030772448251449338293825425671124007203015186247748341799111218556853662754524694631628388574210430789555089574327465630481382849795150755943726683415857098105433389945777259732977995589703270031668490484503563876868649695705759271187537143477857560228233588097894180495998562281226521593888407973441537009092834129993456645579933191451570906635691380921000127204194717340675460756949097951484171380531682841241236909980712415078328489929889293081772602438311205386757305049746755532992074513134346140375620420044617650738874353512024627644383643703406712881646521889725014481102248382663151187985021386509185125868288040225695264676711092671064585720896054657844674746752664509386827186334140089494289472840176521659313344248316556325296857655859456274524222115887531936646530988064944233280058721190766588400292145589648192196341018280914353966535399671153765517872174026873512390037858193471464619466367299229076087984527597436729065382464579518060797449794837085469701577071271215618057794975187155655957144713045381004132305028155772688728138330804146878319782801318986634844406786833632374436141659914909803337276029019957087339314763099160067233668784915761658967529886314050828017310001225305076242123024767146059180101121564408138379463438879967848087271047303788821688316434180619717556922414973928168856385155019652954746606668620519146118767878448444833155937514775888214403135718651906652254317770845798468619822826291896122207624459937433260276355762080518526653138995020248279227560665200033013232953964676612565531356401833800582048784470946401675693619914950432142545680126809605694843398564531847485829573928771411411077691231543221026439736548584201096829494392440766395753623734630142063136276262699514645642461023255620009299597625906924801006940510190024645830951702591346227597367146784826907611876561446631713312075488129492762684645353584900425878032180877790891528427255830789064159009383208323322461358212631590781507475873744101344515996996854469633020991838895256605808223122966252339326715388190505653574357523441497759180860890636574688660154824505632670927963293448991214158390229452504817099464157468197904777747400353308140490437725954020317974319241800961013260928229701629276335535837723024519209102788630999085328617700570324231914763853645970158234405141947475563480786084345347451625431158443222644889793733330818855206659393722824486377083628857175896144652762897370943034046624716999678789747528594194998341440207641876945915196963352065662083383985486966867554548836377763108313975560686656146960378948849575267499580521532128238442194520549624631491281109674142734215617472341514143788623247398258130246402118676503676429170215612275046833276924685624152530758757192393147154752544676169659895821687085001509508668933137179150181816427621265096162927469384497520710269491001355936784490547061716337308898460373005389027748648048316793685903782904320859729190467056753404930897877058370881049738629153922625052594140134759711646047546582577913550839559844581307300504792719056581618405736185134708515543653403751835900728390318458942791589370847083454072745030424992507463758716216580272504592024864273229788430948812904499044134354983357340909118105450632053156998112388544625204053218508930286276614283997594551236549926872236225491589214128110168871997809925173959976083907629525306519493110938916691449972748529525323489393830025014553279980135877387932236367162999872639049089248189188524774517614104677485425594310031939452030692132011037649770180084291404620714792919500860250817958339163857522374305767196103379235827990066330610916454537970371523002105768363523790675907791101178187820907086335392495349113642224834463510316565142405731691438243988906475036223074915687312811207474096094789063494931580109845828082460272364388086435140263742346706970427019049692863661177991413243722134106385334672369835369831976760254362899889887336117135783633672083832186107835982367257233291233256012804235399856669587038507457755335529221513052725721482914238311637851548318541187617393802225667026225632780592356345654637899760835409356601899894243875419179159151844622100849829251570742199319632286202376951098181270014875647702049303490838808276525564200732628677606481422506691413675835363891642095005824965967577080521647413129444060801865506370299419596999639827447905721769944076942109433659476326364473350380423365378081940580459854176066478140295804585871163651481440181944313167263013137518973382675058154295978108430847002257195555956817719115229399882095959490582287224880056389235000054692498766396462170926272725156597616971129668541823468151579893742939641959711110194296202705658192191360823447295168292698868272118622479012770064154561042831533389267935355035193904423167897618762849574243797641649066885287515579121773850543791088795601859664493421622898231222832570016649575323045959713807689546255225091674266564879515920019445564783203606164427570584480882285125807755285036537513476660471631911391516957313693033764430259011473692877121621284315930127583880225121586260396862170461586246262703941517554146965019583771753584472588696943530562579375281257709689398061277463232919436280546277384547813463972005871156114274883091341490205257354886284842455569223346519384667704444921089797875858458916651220243552502406627054296883098360706829472600137917100242136922586405257800511418978607002845164842708139029317373555488223435388031986838319224798944281087637947703223049345654667362293740747216253035963357319806047444370302911151508289486819376591525458520653364842609914515455134626248092529248981798803376626975698459273737197832171543427023559994082785596410171206066301359894942821551121428865677552851868665794420132557307755442314932869061101432725704118334444483926858669005431108749718603350941755318238262731871173531243337026528244384501844869644760970446887401221001155917569390656490709123452148063245419103805768967558898998985426906461212586323049523219736429253546188539869097161393610513943081721486509656133028356333025732116960632292368008931920356102982716157911241972603739377391043855506768020741464539531729021138686313350637237063705962344186714330661176906459306788857469572295601111097665083007632364199655708100748079739774988475431908153420660754276173883414225288054611779643022513155594137840229874557258220007697136592581262462641587626569182752637246303135948547675808458744380432728651632131403285694912707428831293198428111492845183367839754828779853480954766305924570448815773669741006739876530487421290227459424826962251367909048520775515676573994931956743807081095603088393496503415607427128608906463300638919231515492878742228992031232839911981090126946321097797907022040563711383247674841963473135412206615401699014687833916393447731385528799864644453993485271326528236297073252141173427144710438236107363949292195638466583904838038637769257613350499412308334912584479912176932950043096672539900702560603194173991837564472221606487112798049208919742089521580547201750222067829982823704390096530611292256549490436567768666036207380272142436700646574065860042488019461088908284949703859198184731222692817513818672862718182693112801407189831012751233945106271804968685928886881362203554065482442069047950251701272279856696597110624683564144254085348881554927486606347793545789303585320871992845564944732737508730593378490905122340618482288463936821435277534204651281037018164195788866622294771974176964811571324536663521233575285829653470656412271548894414860027551646994191716246979127763950183403996682826820857886018883097434438598289999893661050344408675544191517774143611035406194518272663023047248392534945272028363167971277272248785793044792102582974600778058186846929765254459735521444135582561652922347857607294584439840806917422040717197313893627839109798448702567158063270159319839965193582274301460059916547296640221778451319536407658590160272389824982614384699188266731246379672466667913956304917277614920173618253239459143409733225720847224014982968348451812283500934705272623886407018873075699894790764453821556209418876567156442094978055185310006775841425999497851062380833751920967920793222819161087994870995800439500393965977523961743340011925725896924358407765027241475111316364233663743049671733859919342470905324678315200851543394366056171686443828336243114031939975733219191391655775296890930470945670303764473651937831808602331169661637796975413545572039484797397752331315938577450949940796506994138992040692457718603023459382771013057825191031052450932888559851071532094137635025146269263897239745493694541912372178613333504497458290003923615643717953127035105963453865246038261563189269546728674756380051276931052816456597636932712204031336744844877282676709840121668388298663518182238337863482223735222814476556154413830651662226285707052426262214227806214367825381358100187247359613600048999187350461349999156538831424762340942958468556088116105636530359965672309279697248555382771054520949962872561574836593541941001916488687813874976312275397423579112134446508106612708860923878380325418134175730126244596234127798199937366135678071327267257199410610398438006462994146479135605710262563876790316690314007623884320215348070129963249635732299422537723506162547835617079159217741710402203348243113655915922596117175339413712303481768266228800718046441091531638131682452497137110565636541943558097049646995092695575346911062376320924652334176932253554143983076732746599639628356101779570787172207565283548677217472093687452163385718967329868183521303577971681377363118651104173073104677740027365575519216425903069215853707631039381830055216681350526837730058708540631910813718951506393154292524432981705942248226799928892238063998213863432670422893216192848547716094213435981883594027490156364829926258715754709758850754888839661864351833136435130270998480724305394390323288715351412722485633293337743584743369044711280407312326772795873310998838953604720012082180521968844915234425173017167112955722346687722821743118738091390201800925747592247150588651508451686254218863454760429436064715743612337543739808408855545216735704233625995815417229202538223114247091153839670252512706660899444452763403210483241362082474531766905060759629149321812490190164491645979319440624791609698872099868783489407247878177626202145786132042318540070200179353128820698185504353606975584758841027392057411386782530606283090248650295891247649697197039565099347831891358835447359490052438433459389724385805901810083949725756691581351025167950527935408861091991354183698472288302789244505989088025571462020158491142348219168311948202430944539085352067963822378529085311645576354654173635689229918808497104457306301759505363045379558953447988805157616023686502870211554044750830307406890587905447543936290279726916522313936253417355782392054021970706697495513490388254751714868003654414993877752559595846775122809403588621568555879967625268797300384017729565661202604106013773234990592781830181273277714961375207615385663966382992484562144171664245792500661529973599039420680755984460758571871235607192666889186186266332788209818979542380177754547650360117617294767804894237593257190709285663161857083901393470032876818584757765723519212142937184947679546583577955309109149725163037859149656183648094655237802715173470372213431251989020769928622274724664282716197830860856258160795653265970315461381788976616647150789134635145233228949181193055254182730773623661942517607365286947432740557796915277891010541472645003455373966864002304188336197040017718004704943892870530750616064371419299441780264366312074293942570749455325523242680729674924020675176129229701777940703089981336234609523046996859974693657862101636632983341280407346856501621061757369359125481023678097989110361027546805736449263754289878168436045003771031337296798727007311480105607858320778013758088954384680125651195050887211505236538251199674333792353038432818710255561827412309393267395358371838527884104150704225533824409300738714533270861928045126030918968911671797345720334660929771208498561353523943637657795560440563265479577862268664842245788422019674464122952710132403214720372656492351589805498375202895126604442651782262721181670475065147279523994598505532494549237377907882681697023492797841316513774100874608041524461662595617739032062189849149393737187496176367848699142753160407788052360730071717495569768768009821648119188570761853045086676843976711681959515679185102507182871852631308075188503371472898718724608302133934559581178990738583543037182594048522566960553238843750724863406859567999577457894252338540835297005549793602335477441674210066937342536646242366642277604145995290029655496191602666253768859539479409472051081490548684210330985042447557212411875395691200366780062754110075001162954863921538307281289213537949202824460743864179466316895344703233570450498328098645722320854588045974134928014182092204193326356822955540702738446986275514010188904888430014952510693633451647975172983922694495720872968126886557070495789191733571024139029108470195853359968929785148784519981505229291979154718111131479061301313272419499187466389356001338499982516680254657143711653859138724879392562093237568872895505133783257178493267429787082480554328767727599380646152633253763337796471751650125320053163608404811112670269552871629352336986401286851734983819441268453993393430436442203879468570456393893237068681829399195173426611130465908087740759983212089492091211004585771254767601042740076001807242738189373342567615026126365820660794442784009988787759259112127065272172540310584980360117879522976546962500210555991453354723444568481243309472493383361291142075692915637515698976073603500265329239846702039661511806242014054412705241156726995079299342476491377531594288262120690421875937587903761439870409201265972316065524061251079530946211669846236509235798514362430410606903519549095593152143854663639905010262210387237920038723265404726297415405301843450959489619923061128175161060729580124190163494070251667177758572941045890087171269751629435020865616848671589088146756719696412086419465219631103574492007374799818044832149067549670777888991993035613445805019935525361376275850076496091672637689381478980859556205391058102778021093585219691424920148810874610183552941181408579905975689745895791686810539375890975450857568223506870737590330102057681327612510250244824745214092515516521030298599654497224371709453666954081000977081877119812089754882207213652750789459493931469090156773417074977561061693483031741406253254155091359514456440043379358429912231070098712921347587237382505445352628284480768964081509323844012184881568093016438366325757822757969815055391857981902379087121751651701738979188497527059046059416528704867056348858159685476153806210235130695850353637041702042433334253896640453943714363525934023481347514274017394562342331972742938524666610967090984792066822894524565508157096741658343003728016612407020847168154251776630510442317885811876372820920186210470156832214997291795901413272104620424377174071002662565804256003127146221161338996182847108731038362506333795853106614163211162596719535753642915767292172786303940501455873253634751761971045513627601733852734699999980338426440720307287289884149683946009794002608214930504533687278547976442360606739648323858873712062983163642009652671346610505853065448480969902115580398188325669639520636290247160743521543630839413431234015667799257741860735865538026894432086172769756507155243486675499761717072704436274069215913428981424150169655783959235547460294657552339366494962161203517767441599119126621943722780230995464775864995428521651679781899045921243581266316233585536216129022353374498758448884617325595945983658729957586423939334614869306477645266882872041598455552316706095119735444828043999037538324145691978333027046888849328695197712515848878639767109059198732018965571118297159516335890355637290634986861034489936300291924222789672255360236572072518112784581803368243559678771447813439383254719796837319064490724890766850648936552813684807455688672057573330184635348154972777608669264777500575495777909647196468226219950125534576504304092495590275108950122729586927857060294250067575958249413429514179963041800180749960530350828111644905393973757100390614278934518245362956762820255966638383362706798571958710307922049259844998018641805124951701565824539433397600680849115491089145478898133441361963100175192255988579772813514776963810781738883028540188747400307835429989039118656929798162404694309740879279476735519179801589044929202334606832742570285324606240779744520497671051500488840527347589286443302501076679918114570194770066633569409552751825013164776331660805205444505992090420989009774804643457913885148533471551034047963462334728364691439540476479426490002793565837477355869092411317179267134516729658800792778748122055786034903289944969965750708991690450796286761432669629673146741841072632380426326019251212567629303057128623481209319561176304851827367682925132425599744995045936617150829258300477138610475115131305617596317254129208441640383941145929323336887161839273714537686241748671753793943858057821238431568670948386204828293107105897670855578633733257393769753122867836610575108138334556468951643932345481499664689188265447380451564908507981618712519444428404009857783556639990889460617969754364254214619115829011246729864014993885972606090101790884939977476416778461605695140039037480632160980766006107213678529103139374360480336972891970202832836814593710941523171994124791460629796942715303371715781802424553164632739910002977738370509905080922986336947487615099815064320676799428917163553429009738076144556937365512782859310384591697328469198530145231740005672545430395632774060746382983875771879204968234942160086463423257209931883912374574870350956638491438593656686103475802678558796876571851149489210170552212400569746789463105315563001282007428969943132005744470316461855953874589149196507878235026043608509617760008518796174997340312876319171123591719240905381558762282343370259667239761867452011897649735814364311694874515535443114716325464749371107853784248869438548052594678890942981723500638533638860905453248077329853436358710504271563343013917814823121418391308379935263812970758750775220062640290967304923811163405175510167841981118627900319880983568504827441477476369056407343425280038732767619751253590156825343718875564310090688254859898680984489510107754244977047240660361529613621228376169745651818826701563924742702417772091763495705599406284114477530810072208701431155425936881459435429483538058356005029626242250261804638450708762422776469576403344011647034050155671481411441355391007933423519935434894429962416113058529624085151046788815907810655215549346079195549315079225251929650690162111109941465390534128024137498366631484970561316794908419883136667913203850316875714464100780725587624376189379484460490839241612323208821576838974057516404331711837011958937921704888750331163556832402061666325129455594062015739831299446483077097362577621736724162938296771816698763182190925088945118618138046811224106199329184674534501983900876865161699235913950487824602779275421414505897050539417516209571515575335222024958772263105749997867260722917782355490947178146891367643565959593352070589411052057591656689230106840236182047238384421307475239352406412778113180198395939318422970832143757317652663255720409024546346352373823572676764997597965894854273298578394726226398506846385907451410848800935809065955744834833557108757151642659501086402673521296345064571819751530463030328822207562813186698850606717704586002048314756358674461574287384523170219045691072580872406671500009291848957784970200314333220429224100111792321064554844172134913373212786584938173185300090132890485972428708341919174027057759952006825138337136437479029128285503907447558228779620788511760259840654611235011190007039629263740996877639279007296138041730938144920924155091606007865706151817798898920459983093102545219687345394227600834977340547316960099647936308630854132372324079308844429341596755324959999877877217442595402608827765855474764603495835849720748941793900241679992000885755226254963727868274765565455086297846589158380890246170152910798776069759039749905358189396991895411729296830650816778184014673396041524868744155663094552407168513297281294219962477939178119470847150713325815530363600153081828744304806191736397351327906065441506328857824037659955856714548033011855954029600753477169304970612029415839644060372059188927438223837391725297419323662151019199321481971137713967488028709068472968633935467011137493058720587744795791680585013988580184671913450751968006937403955799410470591142368244649923115695342051270520311936123788580948984688407020707022391824470156082156319852761465393337295370647749518317895475672346670749189658180907435080708005820252764656980176189766902372660961267236318054964948260313499214115799760599881541245519787221099825101745816560104304253945235558234096695407067919911942926021556341492191278714292862800084817923580847771258998241898854538005155821565880744185804747437787492303169139249830118501229963921905237185705539562772637331434122838058255009706529374995394762850159002431703775615509610850875039250772983396644609845325173064196634949754027845261599168804217055730379949020088064061429823308821086458075642085432549937859005079430016418149852090882792835915151264001638147017967615669098153048273594350170423792484620941293324749019478195856224617944257500162187241922004769689368950433741685694705745860223474388629927241694884482699215322469288646872972750230897822571877171507051550629785385009969914348613713767373806255894909529037682599258716631031712351058740278852074668288815037500406850362316723424776833101788556724394486961467367457760007492428749648632131997758319579476349670507505865562565100300266049466077186635723725232344416301856669925842702594893843671317522999254076729078429620244255184640765042948781972685534215493263542401346681647837164101495210829062014988803602850171878810813824865416369999769189108830563377996184908694401801514047025034449402961374330271464147369620237490809888870919720747537089800868636885615074947677796932896842961749446983178003383141343515197871690758589428679381390598493681774817073898523530204628646544887992928072153073723774522787244381556826782278688643496521679618471456701793656565313655398266774341891692628017481119484339284187751977294244218547384596305794094599544530564646811900995705175620525214207635817548463866969737847253585153186741110007785732082962507072161695131316587305683554093615307372167202461791539154173107599743856795101187906466495121039711075487553817220587135777651230680448876357791076762298798011504863433742547815623921350318408302897524776256696281762606360954700683661608741389307910681024407073309075622092976570781980585506352102150965052321528805855557268763590805206534067402746688898808804398324300481908721676919251478171007239009226005211865429036869513897226917842585696348586594874051837518742089697162861522993104043609587077143698426547780590523175808445548084116931748592112442953852834312749400218338602790340019641449137105425778090197299311953146085556486170570097366509146718550966060630684300927952125089578682953760605821411841517672279132988186605146743223252991849851860753616368966885968285125533892288904150514103796923485594342076344250628797959602450347633268235623866759704331902149263992846723735970039948053062242171809624918040273641620595052414331932911718162076589528231667545216002596153351529641279877112164870973123809207824912651631770354304824585652653758317210038113047193693514759482378297393943888077456495738669151012154815950672867640329095521955500919573191383093534499734018393439507538461943669061858363526624515668632053529639696511279127036935872787620648139174633816450776819141387206612358716788792500756201516222519167347254960102373002128854736638333431260713845123470878645330427766206664173957325987834506032228867757432741141532309271424789372848578290251266729618384314687903721779135523811308283991367470228957770434765642398518919189696625082153264738974042269698152223360355817835674956753577469245120374843608892245484918654749329649301787365959578469775812096338209288279742695526437917506794543059118008281894232599176942231242907032733943517372273942847781964061382111329180781701837655172453014140825941882528255078074089342045092969222237445668529787415210947938230026951298075975257526689704985210830125540509925960718157621006916573164979055686748283048696363028606553788291027453153211621382629445200497350565790956214766670885506453746499486792193921987115284502471871523186319460061707830936553700077446290197262030437471631232363767391931036637124646691518937752439991052601521955845582244455087186107201585280103597662319286004148343926593463653932009067515744672664393462747981101540303868600152756588835692917732811854874468802994526757378711062021077162869859667098950894910844384362299898447286319061441935567187679546265199897090163772692377988039313910335899195826157075948355734837725652219114857686936747578206220265081914343321366606654547793318958550296292957637652668381895138657560424952310189302793414583113200914428461293722689532146992684698312216685042853579773841956604500628630235907677557539995277734110356381722796580509924462824936846208666153641774271968607264158911988282076485821156488796700638823702053918665802488103039338622424571505644904941994610174383337356930441646546824577624018043086542707251154731895202438396613507704656655413404272416293485555430235449832276036296337116977232827110711936573970235074631414283784353447758514897149663540826594714537357824021698896894043902934500864210843364271927314970799637871365824965097821863035084120534776150887037695469646373211355441074916817388022327148977342148415458501931473015721911978401718246113190553038197825539812977765701512704785616568503627584421191019192516734813902409473013102257297721599357094784252995677395007447835447392625357807130084561288562936425146000098417778119877531821784912317731440507816554409715480135891281213280132330108182683478657860840608647478753572229902424690420577528660966054372355798441321419385454219632895119279006909636444564681839290671780924872719176783226599021725589845541224094345634382814883862909029963372333821483878282777341752465506341273365912797480609603610004635475545586714161996658130536159091510862461390871331381093930402783336912946523160577919519660304341970128918611127752315032064032026884409398547418847241533891269699536371134924835644518160107502288118788697057529755150267717788981776053883917113825046645604139948942621874925594131101181314689122667194553282370210512398352378026481088752316675030656049016058218635729910714538088227915576313703920466071817939697122349286272698178510890818447619436304424013915930441798541670231713401385340369684077328923532302804485535074779176369567679047406044434719985938797109782994250238686324593643378101542803428813536288480804172525206444630894185188518856524490655870713439464452930583709177664825838772378066712742001988812389402489613761577910382968857804774084504532356714529085788088922629928635624566238791324025299375573941683846130333423017650588285557844137683101030506044186442017228461397616153031244265525457728746655724829485180290971646899052943776660694319355640817710444107439109105019168458953221150905997100776223356982012116028857364494698333895862519661503939465386621868366319588842389535464083870883954289267353798267413239414133320095784699678710777107540271954884865500459488347147057601023105903388838576253894919733064457321432619549982557049862281615191620233546440710318332799922288505547884827149601891986593796815670962265382601701200344290061006604169386445626749977834788281082810204902975999728716243069362574458587877056857346315109865043552720509906371834795490684376060458276029694912370704179772026001388208641919690146488148100967791845810466718855834129123925536171062574177780270173088504780639660000272680444206824163508271141703654686109127397481777162284945009340704971136732900997779080674616242700661010120603051944384181566569090927288519088033986866630835297844158504285949516610552388223612702377948827441744552449765753183597901374850652383718657653069588642399553163136861916305615023877442547119969533968998357127892916444743041552481890693000629745492333438019126873971257344853601392992395360229745778778089784080334350077576694349939700128312302995572913909497304990075791254193493528359511177478607356506833310234102287216516274242580067660354988045914526715791643276063541465644204647067125490233126035432132521853248917304655157028611508324823683330289816772462947159773960897296653782545608034009388590321367770943684120686766210450135137661128792281344229821926741443484043791346964547154019071691719134019192525694757221190514331324867517725105354346812430052122126902649718884729899860231677137028664853755864303407908537534193516648737586078027649634620852704847462581295682969571922216726839193788391564273476962910372252797365055725744379617011909764135018674980330210759171447213863125904245468453415018360657493224719575460635745699703208016611700997984594496967536470524505400719305742269747155994480692117763693114779439895528529680678893765810143609635350552324201484772389996253134376243802680325787156501172535186689465331044639174924082303648004113150669961742631405029152005786452587179912396232766339578397296571440885202238455452447063811237470493808344012810128398142894257222158561794531628976512777914632442934474747009306465054897653609894247385632253519096788711305025117730215596264234356180144041667210330018475975638306697246229945807959737032204044946923139253040786359292396413253729433465371355946167651630638136515206516799198210620289412934242533803469595633141299845631514458738438167922704065969839305402439416594898052034499571736213142332951898740576596216634761524560294563120950268060937070065831285631721298437615243745828384403834924866085569248448756721516893750703463711261174138543177174368837913841932928146952883570826883817386164398204138656287529337814245846211335343757667366801683401321388623349435229810455703798457128092040636460111419384824191652132054581547671746366572109188308111005073110252891534161021927232213627153015365368458744164529219297743474980649013363529736451693083479672781387561568780805653881942167229111254925671188852350421860050922320030168584243190595012009135591289866922772739144147057853721002882390656365599414424601394742725217101235688425728327445257379742305425383136595833670963538857032999152154191762511788298438431245226658267030188486485267314536756008127674889832849633652373142396542676925189254611402782576784494776546450053281738953668683681523904971892722819714423227902869215959619711393449113906039706662774894473447272601209259207971031203614963765728501866286447458573695977195046419766945894104572858836382750332735716948392926598872637882619671804862126579258266584315360664980955409903698687167357235765273543475304671598569419768513699075123417322779659389531664446777996465560545217754250152110988117438377868304551540032449658478357179228999550637501725003262797796780230993654852900568570964356386126806364931220279659671999956144668152553184837302798626192041547543029995811305853504550512498474415013240367858447387800095141473230013948129813763065816964744849557236561170559742236558686146936917039647818605123298497068877780252796732532469861235566025301642716952151936803094874416577639549529570370392329687166782031704069482198113578645048821352267320597346292285877975767434922692392866490770636842824224883822832805676380949660134158626305168681761710842177675835592662971302013586434993958128460584388858345067259386085460887471746955817111965626684396237876158991680701115742176780747946399351289289894749012008029191669242160474175979539372436402960322793232096057607391013079736665917742459406677434119048852589571509723243680618495405750686654237550568663420779692595945552519538019739244229105052787670561710393891122720969237071249015704855269973788823757324482090182858632645810813503578755180242459348036679425232771997250134935913310666927983063525046550077443071858983094874269447024877326933442669936559139008248934751829010504457371021054130977842884572499557636108545546364364743576220110389161858663452333273147388665928164136033670041940324738228808620480947185186344845692620718260592133672348668572183358524666238894830635221447818201843210623739345838712280810903786427728341756895812764130519719863204471314285328999266199292103526721617653327405141546551016885893796579625329571997221480446125539031302961102664967479771073836525931952618151753934259836560218419940419949142642126793214148643300779309396197016879443439194227072741035746199774927592729665544534850126134894487824740088633469641808098591598030415857359289170067017061073350423685284238298599634221257487418213704314490976355346101797337133955699767615006434970868140336804013760682849468638818125773632487027486286014797929249763643030954089645420004993204566921526452299607039036989336875681047428091740874895001235587598185655918294993688923839392134360785042039825228250379691055748154834667942501894183674577617549063716326225258218149709990784469482435762434174674721018233787710843133772176233368037842025418487270730061306283363247337391624363723772342049323267731760274065927555318141790522549831024695160989370877377292746968236910336606043696742946141925282169878625170690486011438355256951414451578071700643882844173181023387231879272420275119675234794091065829108545819592283348425744833179163918237575219691658710115886968922629208127619352156727578798877984889896679012664493173644898457535816012029164107346218327578890326349578535663868938858193554115417465052761549708128550635172736508078830702492723940847760951072592923296193578953654829156674942720534487424211856546788493598476335953443882385828036251741131901976444468602562931326551267366481499273135713492882063840297087204358064724033550878572119632123831704251555251909002627974924724453867849147190122548370576848135778557837138821489414071379714917931979374105195561190402662482670796837212216278911694459335721346379836731117273238127445159250106058676519860358457087885764145172326323938556707838657567261723509432365551241590852015246063886861422119957639920602719344381540349244908755008672705387607134375989190647657552353533883468708206370924785941252231849622288009564274124342761922439980929462495454288297537385937431454425168573541049781352273818516868494272732939945549815124323369330784727763326328016005088038693220300069773485092859956420742458771640167814523268224443577743156263385341689870854787539845263023325929746621198128135265093097047235004326282350238902555642629122549097965018446381998739210193190418009986394773868670113996746110780082020911020347630788734439401555474304163721309109786323386310137405594972323323846396577828356927348275779374791261645403434486045641934744114131517369326923631242990087249820478230441170750473763997434853921162664098655371484445022497479050639125206965388784778087571240082503512217153374082593218954465469323357059977415243720513657603401724600608674437748292364525282616180874211642516400814578452587057108574988517959591163407960249289489385169117662541143960336218217461371902637065022289424525013997235404082985586947829285352350215744015804794693942549150693650786520716405075350814962646004934230988776569605300377313334837725257689752559702704878016767678440417704971103079898488891075655772305844440191609536540088723377927892162274075585444341193975498744103310433781353382779035621822092173055914126407700123112555632415912712647553410765960308134125600302162529034361747798653117547513327652746268678499161867314236999965717765520762390771507733475699024734303343538004575415413136575978891797120818434248665415716724795034901154399439486523047194911090108186832360448980348600134329420636436143446939561664096692535295127230292141225424167776184202877677787578924007576880705749660044146039246101276137759186824926978605437414096975425674452321161595868906037697236431298729633231790838520761034306617650182508650001213099028190299965812841733297053131981444238450849925235934087358924239957056895540811074013854429446742576076581089664003031475122696834418480200771854230319414431040356337534218547516090189178386326344209009467880724636374072790128773575165707534664895297816820974647275385209539903905697329498674709997947041107273142657226435333000908476179331611211620146426230566429968273743069321902789412905272670651121116157555717153362580598792886797961502798668578012217832594397061089731870513473842627718540214598990121984181903205944622673245134737146317827235403297948751279277904957433643063092049599958652703166800065236855792684250275061501293483774414496250447856488853381355909997549273560159604462450417427750431812223916465473347953229312079356122079893087259632919723671415750761811009537317802086393254509629837956337586671382291173643329225950472274002447228763833112955114052055221456415759868031340706636256389912420096486152558017685893608906807086689789391508924709233156319246122731501117851218079156005762396340158815567239530659817607245197290767430752013858452516653510542591099323563906907521003305251085159229477407394260998945303911432502265731747370399897691419291751665194430332486816458858846383927585039945104611500390602363748790786322858507281745726864400201070426342038902236161512815465367506792266450694067292208644937080364318757500339110645911383872160487275669181707063821684634024867956104712592705580960665873478937697206134095417916453388263382129639173418615425482880310454610845864538674067592990412474676676548458189674475103335928438226886360815762376452920588063095706416819959951897760704275450133485343818260129995981677560119703656540233848977364621949287094579113607331379536733810414445127445008115788518192686380783109707938524237883984408820171055991536564861502044309408482500195650864707478317632995129857155131550247135660314373741635257040094048468924105970318814038041767608142104010835747838252958450256011568193383476415663902158600295124735936377591154887954780139614428638631648447901267307049908204319556424079400569772975762289972470610631885329762787702166077101359950781280818436938369740111078188477732401296199601324269654220542347335988305577870685336390203428002881937556905079079823914079056027834370522813343291765384366167853832843863459835095463036170645699464407871374866114132462393879232648530766611984704807634968620345698213190261201468514752405832426883325217297887821298300498183753574749531200887146181327804157700031633668151222169382988638043051208011629829212518944674309163123700546412406233339183737838612101111562015445934124442779082125633163373849985844572190748877988259931226038567689569347259902615414341622197845840875492658814701457177532052055373774184651484826417283208261501707453009157486268835498023850270682601557661336767035936273816364985467637342129627772563144597743838409957886778102691243954082674191838727664365233323624402640776031493081424041778410201068175417242367420504473690381358847111698607069961247357759698907819066310872543803526095047364016959061660304671203186366784845473822416551355099917167779487411675255340274681835672776784230814293064958120265813997829423331119042394787047720598055370839320322418719624301574163918718529748309115139121089977234702520644611255450501115614482386370336621354296056526805498035812163395490304089167328073899066670957925347910257880715600896451474558879329411665057182419815290019057156082041698882338489650424488224844843259095811533656903969123738941524055317113906554516730206208306937128355808977409156742503257398074100228993439748233920995644284225944112831572626702474988411179957199654626719863379748166296831106811367743939106965586936104270831235007050013815348552980118524396675026453216156545132558381811511208500447641729922180067270723059456610905491553306541019548076126742827937404925263583982196402709336760841598624783118404502906879878507659318800819405988894553649131128880392029686739468645354033158069201370028271653087599906433008704172847652835320532446353969860196064090174901288200893771531898494352115922478389753055183567647408966671624745362860643822021093443099999660945501201145264499466082574012966645595442830000177726100469447557359437446106031739991976523335050810692410115968904333758889100590098940729868307485211329726676334868759074092736169843889082523787841942630292387741305039634988911230281733776608237613803746114299509395147234601894638533180237107035337613429358024755734364064174749410317118831727705299229068970182770890713660269082052733569321062067187888550191665159804731424714063048502971075762895850401016060620649891173070077597932228691053183315072009707955855457804436013181528922867002237787663195079411144169220520449078025248989770658765130116862914764636925932461575613076623110966874025864794573033990576405842673770308119254143391970407927767168503395179179698075865192286812743423741014918186347464313326959555623561108927098208010432614993631977298858570181426266648677089931247938294077356237959301495827556988644305548253912747881553355516302894290048852760885893046414024586587517858632132926933519722988970383826291507654669635886778028440029856110503229744831038881435342046021690278369740437341800651218336119590290063990192086809462860553375333423405226186917965501650841947196685151316475623660075813026900808729436818260546140425120659686854895633255634951986985762524154020613979378894113933015031786740280066160365173725129547953492992175838158167285230594052465972953088589810372375358331045511335005273733288063891465246476198316243175750022183441940080041254285104081755098334363268457052008299562089961802443678948899583618156388067335825899345080447218748504285230770483404975034257452881632324903370832846264198550019832673554586019339032566905772169272354416482973062375499427894245330060787036408342340836648667009199448743945735160577044884700748367691302212608018786884190725889980221843236410493619822897832036236263916469308560257776272242346429661844120809892766562936024342810075955109917075501683143152979458272610313807542651316350672057076887179803994024381100139174534369353206235798820879964897415489948796177843494504196432322609958271504223420143921522242966376600093015028688014490707054018014666584199388871839627939504220812989381630439949166715228170431358970822238095286576122899481108492937501219023560254193663028616934902694435985539354437279613445553092127732878586870615408434925645746497218662012789942961373247805666635151249465798004279834806886653131001518625535819689527739938789130327549310028939613549767160986927890108158170296108654669469000914913397552861871465480047008993323809925855252687354641645371207625495915091193469473776234316286699721589901964245122970575616675235980552516631372730803768899276390580363539652817243491726771570545592828159687249546691462978687798669788585096370707532089904079106314052180486284219519785759535230342152851782176421900198804674589451321141181847503725700768586408835392071215907705647976846448931464215994645753518998753053240986956358147037754490912430409503068690876810117795451020782121556878714983606630983831488521194008335886029157525099699005219077808890768851663803499792862611527461344413906029243442479370440270542207896075597273516938171250215391738016303803554074181760551878501799079466277896431902227669674064156746782499559805955122274339841195255620738206069530155652525277221766176667974630615436211283209491361378654221044648581056539278450469099815250165027372736133905158480329124871956097444494033988196855597927148052217996859572044217493022524314127706205545152786351620732579379911172168123939606375564327407269397509166836179231979484780763730792560179202221379404137587397926010509310195697296960391221721097308214597359175298615176031866922872334687624843735223617829798796243790652299698634297509119443606908088466862399848130412424740263225153631441685863141352522021592067279439242931684894374004566263010691974905418495784470456027174058056251674633554088634933687182584113684398330614331444528682186127068695853605453954028039535131148824136752452250752297140840929858700856497803663567730598945962594517418148893373526644199844770076975976537571033157836319222279970277533549570768857938904339145165697897628302220283196236729875530102827614037381721336369414391960539767252351036041839924004533373390942895855519351476726861497313125398240423193887487489025811167093843199756334555358122009354207783870962950524781644001944355993926783671741886165662223538744680047672010439033376192247593645743054070203912704347156428845573882461824968082480710981576485811596337459397154950329655140935113078516613129862017329049397046255661820037911371629529383751649674879921085372963106767732988603239625178244033107672877690762639270740773960596493878111552028812264695372777222515099128442226869932407707950382678637280905609957376163368706086139423613555802131014333514222197773053055279150389076805138906254119765518538353012400563082683764030666824221062298063316779651873376202103698326078140940255467034496844966772838192200780206657060053121079683508114326704597615386105046130369939858088108868852395790015403936880639008749800550931426564420099104983825856919117313108165940465326074970754715341004966368553911223209424604177782291249796168828400827514585584695661035754300417961617914334376667932466465158753181018697860219254960304660794994238153360333345692424148310582231776958391445929437834217547977182527838168034498817687461709384218076622877432985301215671856701444525970415943425299982151287109147431355250924534157020720820334586351044505939808924111884299462619708168438017390340339871812989867206554637303544113614064770475496984510969703395259676265759394038338685939523616798941816094759443914207267198017380428063433377435982538441497136128335969697762602363624368825999704400675726857214993602248877407010275503798121321397439373044176788852116415899386186912709210192051401060227135316451493923980612551877601670820835438196897712758349156040619151719756811749191689852546699184149730068717159703035247390320829004243356503177325388506908431411224879855469231644292464503160594148929648435073840909951193273548460280136480599641296072745531822211347110721039146915334867746678376601605882915485797563683648066247809536805698445413295421903626404375597807548801993220248851381256688999952997732323231865142170542076562165323556309800783646406819986219609186539546590010184818295883811312002293955231624494764431597629343156629098139903926855666200345704793181315511353504274060052682136100384391799971342659791471759251582598137342275561883538188736607428028460920516629243015618436889615708785876261986504092790649300698153596437747167253979814047556714869134370435594156281841516001621414956382618737639358497407763069308872726498880073569363373199742097404653800547402901109271045415656530192069599272551581675621576428570100715015016344882907107477579252886593056154374786564101569603782556104988981708374388150914627278219645663348504844757575640381670537209785828968044244420263547013432765183619639281578869212735041924602907951135090575583448153205712937561359025584069335263187353037924110087213754134594250299810724127578545657856405790943506512698077454743442619762568498041497840354679529983527579804762223410109306427122528387350313887997654483107710641495495690360958765292073048092165227255581520084712867999640280880958074620909128544436929065533034309375519801488548833766082603456790631305561140695417524395673247126629098686235871163100028259061910845207406093219699858419652141317286125468048869903951325905400736843233543911867455284149359850316381626582742611504717133034349879257516421559529155308558856328353504011581143215570998759408697611346636235049704005660663496862211333693026548028085463893629173860963187188434193379177895241158830829357178438542514523583981739640369866111368059332760911061202326260366299822230604811249189708074452533066146964672690197839353814013705364840050811822215927958337153929827477833745384593636065304895414486630142488117489883664721106979570141902381507602975835249395147483641730472005594050947085486430223220991820498744573758465915538953210998846090689293944690000490584487386019489422549457464039766718163523522832726688689909146437636746586984768624680424514341974434842350732329596777557640613367843483222164455253151679065056511601261259492124758763653922684518993423537463217330417472676735045709089568918192878180142743849046292961843050029818037081192053341421127362822412542558881292602093599748911822578533514566265973751095313653002048190438372137526982150325927386119367034886072592089528525794080252853121219767228021298382387198085655338233638611781032281581138551902024560865009639105698141548734177641971194952398548071944370250868940659622120448458189634985939666302621974156465050404336996317375331220167402505756099775599646051320100849301524239353254791127740998434958798473447077769384234577642699982913908959020028053351382280592871577949151273682115661123535335379922046205752698843323405986666552880917374491097648936779519460591622491833889110254242355147811861884395663792709790475891153455829313087004374296513962611907087678799466603393999661010005612255796900327149098096160014802478162340893410954636486042065583269819284232833069641557185013734214385597169355275324145427820897497860973172886871469945754541795362033106768437916670128282010090786642283408635562441251042615333068910693663184015043593208826411405568362750612099953450879408178349081715560037470259657206714852045144875347409029305517326000638280794222569919081002044722658831422700535895715642289487082147420324383025186565685076567403887942356669216097837497535763260635488636894328897733906393249225751277143605634397304994308115016282114440825923617610196125771508337563092912752285399904039264456355052918978033103286672691739635665113435234030344504101334783912416783399733871192483747680731614876288907502298036942749257540081017968740398883533195351670803491047991717114306688321450240562241307851180171570576577814538138892658398353822757865085512873498172798972862873176713918502895731692449323813233778028418395421737090422773950772769186785226663697751804566151812518214651595986629507799883288620380680389090280574624571415562756693145797573482268233981428536729725372156306655263981102288517383802390092173999423322077630238611902127356158578911103479946012410965286017361622744073352369414846049678914243919459631201582039046460357619176034592455104571960471774812525312744219083215495131145281244928028329092308063474183862344863008246303406149218637629604677322344865617094759464007167844973545403772075273696496472533332178532634552100989712259579324739362637229952894918176693246614643194690053710255585624802198749542334517830783937179362171620880657324415420860464871588627685559136980417915505346602404276647315393200296043607329941960147888334537097835177161998501059041225435440721949464930628483032344790235875996078374543107678383579827974042938117267859356542086766691956018855758693953587766029183924442765040520582892310443862510788430680550301480602278092716891722151729328040758580929791453382866879345781640794582274271172893175378256329831023920750436979355842539787036130664408925689238442404994566237608919361814898066557227190149579830066911571025884642749519767270096385310872933728998129725814455796157611918067181164572626849057972352153160881239801932798737095420599233014787190167347801864793259987572290796211825698106927316041720585611468878943594450544101463747348052276516239551149978728279571416773614487735031721948951694778691437814834195133583094161641674121279249184256843095194907077480622463832974066720266124986005970082557300713279297744873823579281696770287055682621581167812529633091257182525622813961341162823836989909987972056390976132007478309434499840708311690393889245720095481670870768623741066269179300365418679984493318421193804051042494379479818390480755308993150163905648938246617340930223240285455861367634456410728621599521319493628882570476005177319260936556555419886724260505311460295026096342624631609780517266373119591077041409589276948073468265664549197666892268399134589469940477055181160419371130145505354822712259615109626797718464998141531011260919099121499862857657614463374143673255460962454185045746311360184097519634935245267276793868539390800957921021137699979360325163547862750469235354351380192769178562889130450543494532512847148927353036962935501660957712377752414800104096736792351896289238484791231816173817493316295286490356556668607836040333004864634492594363437749674936842036757029875995003640528490999225498767140254907290135312128897318640283623965267519698409720412919759426005431504714001362591664084558712185779123852880850240226259800293840025084405780312440118804807561245326523404226308608738761977262905306798376251470947262660626476923116997768030097466366478628389242784037459961081259053715534152199819138742175242265511260748057600957808093987520979214449993716318726860706579590586631321575824656572693103772644070804753621215430923010005451371420126212629193211541133936636559558215579367125037904250048619850036602080313211489508988867860144961831588695816936835713438133139636903764713690488604220692645101559347126839504945842200975133308498817817136910320834131929655390128950296776694635529944591053576583753250394414060056523385525802557693185177090062162435521315352606664530717050901197235911580709322163324102162895375229125023058754910716068387047173052020469932308849953319107894813092967186867675704062105566803335001357673611493737158331143724785351255928216404542478861610013277459970345243921535445692480284366667981017529627978753807210978174097721651537348858180909725015514240646663191523831960111026879718668046749848363207627299686662487103145181845509338468165249699920161224971422763468304057709288489420912483780867409502856612724069739968984820776932790003241927882917477623784359306954883296651567089027682748941169470506919757199218389023637105103428639543307823201074582000007736258799021259779773136390672566237753928464889652915189554325349665292271872371475681233698510001821194810510920021725525508839294153318106214399802510084061122794145206021775186369362603782117326497683601576089013494357702509826623569690743493593705651438686826512201534196332288957902813839622916889784916037597221551998691835819408633395308550246630205715696888206574318193158727619581120786967796298752772603846569253655132001858168466766405996994973194582548200149411334269074098603773652973671425808559442476574893020278892131254875353210163565332248305505010778626362030111249784439315873516685684900386704450762850107447909200030534845840851974686505815744499696244797270338136301741351013073596252380946765644763662358817127438973715576860065934543972505847422533411058953247208559914341066383350439364251554898734386545586303813085839214179585690115177350157113729720188834990393936663721501027515519457546401990906171101958327677422750772929435573936079294819559982788489626726805271668355186107682448931834943992447905496197245444528881353446632977389930348936455555888045718114190322789226305950276523628872695490290263600099636629668310891209491581087360276824955843205030947050795892820812240703550866766286906454658104481739024065845217374944922388935790200969850656771623964960524401281002630967670140269177798438678281994967744241940270115781175240877049516841472668363728944187970888934396490084607069638746023570613671934551273158271452038950871869035875951856896554619997537381991983831302374893846056527305296655807628567316525106913400834912142798780381155769970332883369359714409053911607580925005637324436895747762715441868591376216290570830529129135157231446290977785945698409670496029466307470792058555300974126267270997722280090708669090132976592648001254345902439246808074272896578072886596747659640271541442993645842083699821493539865378291207259337535437124254947890810191140444325716078485021858567849100109486243992343980653149925981491547041990354389984509382316981259003744366139142062330759854324264340398878263362589422865177910870988697953252742744813234770460935079798976227063930330297964374076361781050218605472204511171974348079028615565503902908170166165622542909705674344497115179931578537194044162953280876224592964255188839069210967476210827395189400465542049101627182442935894110958338825171124171911322301162619327197177661504809624407803825331594721142867494454297865245767389834560022987342401365026061639226855468547776773713696746558399866626430365135340030637551685999829291332397470954556973022143450006764544994143773153436212008920601731269155076917937353373784159276218479176743111950015804921251122326876020558213275409623790363183620493810319746311377616165115331154849502968121942691278963307044967943027046165167184588462096996585339378513041910463854180404623847526111912780472898974286297309631419103935336085833932949880868705297102167597176855280909748946508337474753407943496051801289416791315385002223292962282632883150660716760308300397985625736759987289164843140470289888339041809215670437972328167616988138102169806462828282872475116160103185474683730514914125635241404877593948862544600499470386536224880183704257453343404579181527374364333132684561629487147135183559561243372808515967090998530635495346663230261259900926945165761597839789118063034511365607131877932684742845351993870924307735390704028280679334175371258911166190544438917405238206134300457288516510886668916790126721366335262555351228552265240288693720843458612728310291325865903769043895398955715837651975744013307251548393187624897331386534173866881787615457737091636283011976570103880565405767174961641377774033461300627855892298568287379973804784122645094211249757700873793112916888980398335809333149924816224713332779759933372194670947045528072026697182274404277606234822352591263695318675960877743378973918646802942922609914163707097188304041694487157475578788758127076680904043022319237116456915086002734852920648194883995481524263317427821038665072722546369678022161333805093982528530497909748305900584089236551404949596878106848509696204048539223414571981155580023573621683265512084457941264763844018290650081885531025408554489372490460448372524079353893439199540509856788187095157781811455176507343618554197951630294157508386589049884659941188522587888447444833938268088612261131750947838724239964527152219807340057761720585577521484248602558488382324644574917952816518280377378409915843011487626688065513800908371251464427921341349070582197438972242943465793543925208598662585410529182924548269885142603747579609189235383638000591669408239954328286415822749285930947443514966021237989288777202418086208500217694519658292226118543166555218450364031564038992128642662517970015431200343239475663497689012528974568491977206597434459157539876867078392471318284192584524258113847913086795964827518546429690315493639375556454717279609064574315196092008903984021774008537120330529943389460087891220740862277152899832669173774599016511750560355202363886181065628227697936538776093040807876443866816562033814418900925706425507442459755943604050048738048834886347230363871913245070810164117710630964468851750642722625310615055705007750937489219904498504993652466003252503264847945917838991151671113087298849108688546493497065297184686195824210368068572852121103572381889800697017397469380536753865102818044465206848029853220205690394039788827620886666761719811431952171297078777837649380049111225820861361870178738758637305166903975974182874069928772104017795226070806292226030875886548979119233017582695885623850979674005577774175439839348109119356343157749367946034886645486988273242679967632786043597489167353332136110647960917327687023503729687793661236294058425122176573577734803439316928003035837658172777450650776323822508839613722650115836352118716981000854799622461766253426358651138493181931025986895445931352340837592711286382113626348537859581086434375328273892075367278690005325847928511838201759493065885164848994253401150420696767437504234752146910036491828576757835031561223013657835716618999564382631042322829489867809029451422359044154242799600603034431318594493571846524785463738589797860414033301258395374873744757080832192824900045607426109117611895304754262380802953539679980002788051237039661567104134236401219015470341712036509684684453963384378309416036638619917957259065868208025538852175876186460672430413892841320549504826380587640256029877293702018192447710999649995826303817883104037649423207912885875834264454816488108423218902792978057696385979785003215143125597969004400211358699888865888010769148972613955930474799462963650258284271103516713199185475193453553207308448333447311374230704603377558903847529780151562496437155290379117308209315550357180710638778645367011319279342205928481582395684709633816063480042154521867716504784881648609083586459196114832746933214150691458331254712006211847924220744784618596781071395864997234690378858609014928008481528766311594077069974447761149783634500180948317629296129320635127658687446777867797423176252598558227344557092345239952310585470782509316305826600522018222577072146292188549125831553614625769250711231108234182744663406454380690691164133937957337609241122716358856863461413209344427504735706249720913927789996454572502516838818946366450970784469944875782900462794553757368555196806287345149401999610486711938414664686190163492113108792446833640894209924428709175253002138700792885322996497280375863827474518411281037147405540186669642116854704352207946656360960748699225916193047806099628082296637577948481121092865267346667236290527885295551380031323509837925105896238151051068414434348616998901630710027367613414214248414217493151382529962129801770805208877727964684374325450423991786856549135815506052307815818771424549945125860669859890033104885494560439704549189624752305118003992669363547795096652139285322854775357846000693671796319203386126413513280536940114271019757947388168809859592935780984374045377791414191294072491303227127174490397088496889548505299114122979305575754506375931325491424065521659812007040760046608536432777206460066070346081850212417285928894905466196381560562184077569973200178294029224664166518800987579391361936728415682618366522513577903808456880469903495675243284547731426191418343329987704120826905636989079075044818737216234633192508177614759036964344276781167341868980439748556217122043627198621033144960062136946168464431423389152429932479739305478216201211605837415999516576106115837534275330572497142784494744920000474111819746373886879716000794022894766624898107299123123776990752242883409471992511047287403129045645897753582070475673734480521168050105101418097799282997413195278877643592695114476209156867301463334088895270728573249462858879063178960159356823786676171864501388144493361943889298967226564794915218216414368840187231335843091818870899776620935473096382935287630888532768270083357675589553236029245325136541427598345320930128977282178544166933684666042325011260786098676505366782203414280843900772432317877892424511573281125629179761036685567804015068718421547157565185593485380699257894653126659648299484306269506608238184727943709269211986766837072485313052106272772076566458895176204364181391416081884426371355381045209399031808630567949610644716493191145034967205356588185459661104663858935697301943244837670604123676615250717215152568400472113344355064821731318150348637284893374847744538650526727891672770663040446966677351703485991517460845196446556804698615156611484087045191802864528223956080927194163758781415088397477168462020552103586736618536328528722876152102622371786554405175703032489506977297467952822160430776485941404411929139637321603647491829929278329947138304620073637762600785514369400347990114432911162660031227843813378782476039076013000248386973417423081938089164730691486928844435617824159548139442213285833205448433592643585951341405256675097087689828540886906138851270094222784260491431496649645880940614967997021712533225354690830554587587471194164196056299151452517832594728316493663564072920597141090690422999198249187439377722429181816791671884779093888769083840510269509777500708971973633859576092448530894921684529301460843977306400730502381316909222624576329070911675178573878391533050765908655809181713391293767705647383329141138550376780777445064487394392792779989589139582693950159612505090752026763174027163817387459460807367910544136796230938095093204491658143988435847203680251940248955293489020279386117474075678458013831373371506346557605179091119363364579977035348790657229643082538595872198098115650722483858272592637421919811509748317896240235617297418786429649908125121448202744335573474548336190001082744733077405761656838256957591922013586894106563545136353969938406205355335403990471109721593429258049493767468200955283394976756771171624557722347684694738382079880036798525323406308937195676194294675629413331916980570790908684200041856648378402215101274335704762404359281612464510947265029516225941438955507422995521943378703452658512189917721851905122812120254320113389204860997756006366415934809387105746992310336790057141540453865261279138824094503903880277928638775077686419499310593929508294917315939764069357466437180356384505347801717890657702900768469888207679460442798135023928043826712362497270422260585132689719308961375797976956502913724356567659993635853586172492785820305119412299660785551458596398380659240294416348459105260949476965823197854336426428527312837017811379292026785764699025532000374401055177807098220286836843492851699218259024274394498920109952468019291243631993579761871647040120106286291754430755642360374289746371731300026690433615210585061049556913087097127509212182031968038694477534722859928644828712251111609741142117423247123234633791362649028422231099915359538131876554230663210745051623665024849376634592190404744305900450846503042077723496062023272385393194239116938099840143473584340662577108333265283791278047988818666037049272591617309595200776728418404517170035240142903566758002561612939362679109604927853574233058140324678570551298796487354714785658314223909574078433538481126325558221208951466499829254350942885572050120001911002170737823177518183554355968381758201255921375547937713471566561769863754190580761278251961349251463116652656759303114686064267815898623360056822522942643498577857672232811296640265069149980791859658451042770808454579554317849370730840090942716633657192965869845582174456220961045763417784279523481795230424495544173523516732356273227433775516276488658575319013082726097219067131065460544593694931441894479571207940532855903715607676421704560462208942682172183051153305618580883510529228695116040656571141893400983802888357575801948121044909497580186795873856290805940161254694864276868800147925128112918134585026634246412492248691536947831008654992954037230765628460853761133638842454771167548975794886069654850381549760323177481788955790969049390250443729703479912298023036769771529973501682139531350141749548552966447830860365520942910496508295581342533883034420657428000090471837918283015940246152317031371698446486425653466420518264855600002871669456083660535182108045737792361411673474248085054962762334671148742813124905394014735429587073845615959620540612318250901573606378541747491328284025738062987511048307807718863923663649786562255096444649799587013145049418196958470842446438764737593937058608225514964059481548481525735773861364419299756514230864000993321701438891036339390635198905087008552389948651188592440792055728158947653032142910839285362831202533826844927557946758837062388507784099973332751732530703163674413517558629343240753606017684111620767561571475656211700337618533759771418108754015029714387100126521111751829570647600541559764625598769607020726458948694693630325547949516444749951299971227259749055844162563517217573118343480669083284930169676969700726874344588942770206398829263596565619022142954272998818301214466426079333370524701126195488050429439226175818424685192227728601997964090737274089856156620776088241497730675502543725424003323238926773374978796498789399824278073177842236283132365662608047573387634878299085250275256917832170118289458996511791979924366733710796828415566990011005145290956710591589725324570257553807089937873492348023180966490736700354941767831623556330862348605493916135676113610996383619345484093703848012581756216553913879631293363799896818607914385659064708026049623083075689927740093216607686388063198332169234473446564499205781772642231952170185494734282278390777740197229159669556463087534836246196624039083507878612750634060111855013711283982033904972755163374910711422557559003155848286567906123780529820019223978740820299352919695366564434789376064761772607271117700261549487091140527017708661371271061910272420404910741035696239064065439316776775493989005372849688623769520626943222307736409225800791126847472228288719795441386333730520153628745368541458778637329728418723262667238001897688086561454819189638353264840472097268676196759231519164638551110479135066794503217979179258081220842088986511692732032095100389575496491578810810461245424582026196781802408566138344585477890129475720469486848045912421872003726831501960980981755453698206603760407500113191986184733974095921530668318877043187098805569695858374642556433077058500871440975810393013545584501967193494477305040146535442113541158963486084329638802469243316375476815576441505405441081846262432641053193052349721381624210522346348579650879510162341103221552312854246531048876193625893800995458185581536832381972591202007172475056379794250174510429436888971026876579514885586780729589080506308786666431985262924623720600485346842996076335831276077612697342511180373203518761492213287459893038365042388582370851175598375540096154090296135168035977401258126099757327981071693722232305630235560423881469871148102862812079923608653724410212438352320980763851617850309040277582407417675515532999108014294159624911592899503853496584603827783127676614580859821257310082110854577925136330353779002056599216797584415637829774734422215999509238391235426298729422593738551043797624472677325254270405790783901832377220134318440705292708314165724282770551170024828354074753416424312003819444028906817410517467937531407140629578463431213007556362467323985433904871756483250205274940141383089273592139829213068389256417682277877285231660555040706599047607020991747337064171187226602058111247603862146823785532558996522148996991847367427740595646743273454191258566784222584092682296752614205991201254826013653565144191310037869579796103296930235373037882860652066296680803827730948392762947328140523919394977914496697736349118541004133899671162375043087278477255601109755686792063751946481495407703685689200577849392382164992723235003324228670488534930487997992639060367798735823010225134104452181265626825099477412643926149706568069010405035624997184845629687639525175018323681633524804649139347960002657784492906256271967332211363392736585619171180081168270571694061231652767115060687144267337091422573708125459802786984905591094261045935934137987345565859165731359816479229858080184815714395024862103066371835347132133457812587445939047106457926227408805669891739443519213122855933585457391985003069592668021528919478731236815118522905982016823491481748488035284500215993158642526802195771261522978717018501936481045590793172490394545111746387489704945392134341090050719618610686485085259463432689278074092217103818923430275776076760748451931942741301342091399176177730406560381689604506195066113561528432951774666107908176472801743501540092694568396608339678305207999778911079917550268855238745494900644224071684148046383276572562282806477342815478653151978497048562345095054555584544344167215710507415997338521901609528380951465013727195552790159817995578082780741947300973723215312056745699037064578011273966574206036041778717594602053251483336023158814687128816427683970833007353299968777702934684646302950810294464598398290209759046722641307997063707741605312285286281338348711957067070426424103414971062578855311068893588272704882218989766074120662195455400297083359594191620607487140569140293562762913595074307036586471483806765112444529565733776858426849085120344277293555672652609755750898202500663201755801764323671982143378591591075366227275784752161521670596440278796160980657516516984311390881834688634325994349609125615110757801189723547654649306425656808355749436288191750382992306643493221071685003500780264042055424057235561930430256094649153463739931788182340126702169604126149270743330900085973889780460432936519486056583273401038376839803586157895221382512519113246745681512406817004956926975905318615857167666798983017926964891039671259567356826600523883225884606859060510361989129418025589554215702199807510247291246176724876131791193441520842998096640856493864066180972760146009702723067368997101146474690129389061780580899880016224246886379419981008104444936797485771793750392161681022227983240615564712832646077470871967813840771901874018547846574171596177510971127442574529256779733473187814877569572816215079126629857730168858892802386399363296292279935002536359777148807583525002269242522515467575037417119220735004943010892313056078734934881151281229081032957476629567727701769935983829708803675440855067207346972049213335202743763946439830925072765335500926936471871971020898561737459186004769946052017350571404230306715896359231267782945765203839595790519749637225347714161130364425326624141117790239775117544256973133369993272604864891692597316602933411182097882696127970310839839170162794077767214743723678350870787542926297370195158669943311147819653272326989410731697266307887304483487671997376846696720331853750773377516489069189225887342961349624204135868950549228176705361112022568827459103109209554006582741033083894058836357613204532299934524605425457275492661260461823417665627418863031419485444080741241393911052715847140392180335995172617730302987584658618405190178123294685048503146524930401153156185930922147052737799971293658560069104075030054133398563537163443692940240997354010371449225275713360984242170316599547147860314621903044939787876076977138490976120921421103656611312506969416725675135104524864846203617422188393495593325626951069376500130098027761209168910644142896588709750006888932627796726484712950691048535322190636128751396693953883216118930848822764471179582876299098508830267254162463170761427539329109277088400728785004481547554982719085484044312137457810816896225563505828258259318497317022097227280157509900129749662691642241983791365444446629799115421940055229939814724205558895286584492558719283348713950218688303692075748016349696222025999551653670312369529300630930995442157767923049382851417391746308621176104671910227581239706393237354221791712311932794737799781322942348431763137200116270902162717129751989700271295418878592722017008329371754498927138000452295877301036549827231510244824130000338484589642012240457234733414653908460625673949931292689697203828442397488083188899482779756640814222098809601594904167505334876889941244381505615511628009440787447809073123257600743197852701278253182732799570575377526714051427097999118209563021747369215096823954433271665313449618535207225502228819190465030647987838706475088300660573719072192892889910597825544919638560439342134984515658948097243373233653934924763011958666036832001205630597138203258235031845129605814782347462228647694254256467161435850614561948634664341144727784043922662700831226793856445541939058600600835803093094490313236820872994040293478665898241680421541808872297586241960436525431815891786025786319816191958045665944748177929936711352678888528755604547863184169987012555562401542066303038436215966972098883232418234972012614606107037750389531521318581149216356938110250378654072457281484671966674882381740726631766308626846195010233824784609502370596947050582614746425722212752568584640310187787086175731871933664345116034098376579858638445496704625909589675849132251506082008976297234779717014799444340117412068243476073749628026400312450575401786405446261700090088145842912085335680523061332376037627436313553497628633150168234355332466616754970204421218350893822368482634424794040943510192651550578682042951109804812333137398545694772909923663857807587115205063287332448083734796740459124091743517741356696565402884063934892243536157420063865397245128734455453706595624349126591015940897420804328776406583149580082609046964833684331476210008946505423206320667318748151270006895644367738222241163322610522976392628866883553967062827407051438040770887419644037255083373841957806313275464051804847505566144896998298685830371261744299945528390024956888990244500183792653039607621636475375948212737993343483389303794840208417022257921830227997342824194369107161069975130518664754275673542834256481407603854511051668835924297849176140987755797179365612560262593198007847890837220751660926780534442112694556467694967620330136723203959235284666917620140893433554132610487588617228453534520402089261350357450002540534987551780953918060403462998559531477994656832510649762601657520068890876843179658745280064630663855687711510641896953690398191202583958310615023017821731724281557595246205029251292485166241143130027250012812437896854146544754677381604914162426404510422748719036746294432408088437110256163082692870667745073653795138318088153412302852404405226856294747900965107535317754414630831487879132559153018678009205699318290516249741770199757324843549745293529691361414621930860576443782842302197039601439364138291554859494535342893737195931501754210280910664017253041937417227493338495459632943434882925678894943737052867170815766373824559767399106867947609458248499567490668373584673923414675955363522749847469853848127560841592734770162904803793093611925288017887983268751916644271693613571704366934431081839702853624502302633318168250262529393652020875086124254495389359202573171153214054079216985682963625823087575189782125509764741471222980268530495205091344165159103960913546109091289318288891626244343662925610112478185220013451168706113808481917202799394800698150102870043081602560104421520739104070182088694035570527985451576155071252723461138041574117287689369717296540950458758472619187247104417448284317325854162299464226547870475416937259275758559794090600275496501689883885186500042912072360269622405537129509079846318607907459845060353794462371529662456332793961385591110511259820202312267528347319297656012222019028857714130414713187708418500346951372802451461072600608326366857505369959257274018589690285160336020243307603623085163621458429703429106930466673318679904700533597635746091686712894218601160764251694293285079766318344748534462311955725007447462289885951314752215304932592637430902894845771585631057658179748179927505818432231358067037370179582719625429468726610864627149062450249106931492052286817983772127854738411372447931844496477829278834779554920187839336193684187666987171114132643751900563816367992585724939266808458271770748365744815890131218530714904497454249924579191260810524696572644144198830374247695032040495643426781274313359017279986603082223782423337905146642847205347771213592872117623607448361733431483411103752977049498392254089430694048938632719239433616920215440482489437172880363534077401859352221137828246676710101549194277976670121490228334259337241888080213733232902272369011900272478112700123482063144940223160868679713481649976370432719557119132360350641504303230677225103754146440264407813038922816404748852701216893710780138608679286480208747573454195072110242043253978879256182169808767179182350568440807223883892144247516935091228948859608213197114509086109887229408000108402127163894527195380351643396436699691733365522712297676043189583448786438499742487217076701419167579643582755287855840511525850536090635560557036416995550994694259738287156137183117931720458852648183150202030620761489857514922055978512419544815537089609574516328068168690812401739415066292213494980685173346441217542336547068550313037344113770544646745548703947150577712514517019637290898879103904275404056762831973081738926217079524961966205471209614518463087515956660725028270666563000984876521636985126234467037864710493617807916543629013618649209919575972577667925218426899356790270210437186133560188435724254755876681683377758490113293039035262796991113310970749415929664264115595167694417547095686033686051555170480351446255912114976173579306141710830349165169465388399665102948327551293854883249858965719625904334336267256117362579700382065428221155747728655568215405830718093723462589664436016630972633216866670928664738191180609222287752736275853242190606681567613576764510940956169016529886297568087512243736884706397769118017562771546007158440045552602683025632635910156623440801593848160072865500506527828172329018360045448921788786400505847012145713305045246920855365826863589895702226918866610994119712440074175862922944073708823397918227952812642775031975259666141154907389995063459738611220652583748407905054327720847599802210559794374525770331671234226452248051924363481392897715290417061776176818639220374999932053557249753609798912553931192967276639071690283182979303200884867905317795472754537547949685976682097052131217590398017008792698554205761720948054677242362782005640239976517515081183876664808758814603212659006451784614800283058891082509128161945717096811257208321906415257378455584188198753101610195329880633868931114633599639079331288701629798506814594668290315928472833568131162348336461726176318323853620904569065993267285532224353938154828261018246024589662621600616745281609031157489713763798739411552111004906081086764937353781471321017446375802056801081760643858703096576994105021989934621666371968882345110572093371118356395962439904429970550163907177754849396859678265794128418498843008311021110707876898545563278693235442703438715816196925852156431336490084589288372013849215114389774843126621683740051997879217823111404652254769813192291093453015816301477156431653324897424792055268467009517339791085401587069810381466018520837544528280918756321413988660259666502028437505712355669622290547560305630200764078098753037401954508103620013347685063431617025025442851718151129630995011255116301358956519531874591214079287958350115088358608987560466861275527870115053379854044103762104182782546390287379991527560706927504853426917285342643911005914400377940745025736334262718457850612307288318761068895661126527471149558864991750589990243320181891764054549503639785271262189740710468351438381608178106384241648771311588789137163793673360650006173600318753781054274658731224492250576178540121809908658424381363057142595878787392167491811129679911035051593782077129771417579588955610089941981663880217825597351727093161357178076459439583418223937799821716005511074635580152456970227064792217794885149012707857234834111768602606520108367201767533360241874306706258404716392902080877132514164445119056701722112114247973884638939748238300885726634116169861992981071111095636763516094099751900283704203918153201258888442845274862995854946652858311292503850487073999079587654292902094990865809665526794293519976837235056263779328454192737794469411000605351601640008190853416032738892118642965812284194368619144685413362373004460325744837691727670054741751834948525462046108544541311785913902701258832088565531705201543088137274080695155950671574950458975968115253115769660846755834082061827234534547950387063848327308689858886987975760808914897075335516697612970093172440415885095331580348768704765853438971252533583180849140825177010772651781631214668296730021440503092715953401307324884878738240823891749982735115646802665762622515860024619701132734247898363061708102048217015386011428005590213692538175787888055931237068164310797168611086658006357940475702792714078132289391388383644712985967744872542881496655926095880380665752815319225149553215354915684370749088240237648876217752542824122687285286322857027687492385196777459132429585556090065684013287404141096290341066911284140837767735479168113857200751126614975156951100873472632110315967182929684058641382303232640920086901776374234335158249158869179365119896643626192486772821906201557589107912200565158474945095405660900733653858626997787396066553480086598151821953779922091786036541119234675318978518411313456489639984131694400537467336464469611499976042338328087009869808688991123331249803846678249176576076007097364346945293263049107511927085782295639533188206959587784562301721142717843526074962028152666671261113699426294138964856062506116313550547503907689541513423596771968424650014404957630007102262652010192425506776558961145985067926993564577723727632741592469201184106852888502336149280780485480070196330472424969218978989613092305564505932670737750677619826774688627365078497152242136877508540266870201910740711714701827946194093002319491563870689323803202132285648243360866554172012828200679149322772898854658967260561170561768559365018493351432746337259844053709540839201581115953143728719360685124342299633341878409275289139381553477410949084993982450095819032514092993241882301824647645732790667588870770112322118783740956503889972715596761628184797237379728243666912171862064081807918403614425324096500605194335145254810512192923419308540811481765000102044378766425542616178999009480065541598650342366323797624565039768141209163088896751652400712232120470661832317847808475306844619927609260328923822923316572506647064277005897373920743449742006353257479830357187118821521017980693245793335423310807378695641814188425492912533773921634576583841306434174891314722767008593192011692247792202100982139315729774773148790804718416388128290047575761203259829574258016697915470304102628506040534142633956607382418736824844385811771046187682135367723648464731983394303559905853311142696731300065500137565385092740405929179450778582608582155794367800600710719006184700889172679979410444843818733031562980993940022744616727871716825874893937750554717204070822272150939197797948376019476489407357479383217109969784131259539134433927582983913760049968925101455738514291339048285577674117977972809553938498926853039202552395534048930569993180244685305627185710853129228920207608393626944447398661977969179873301894166793884142810788939341327679127732962822693640011541537482929778516566363218005824549237696501036759303313002256072664054140318573112505935139599916675495621759790908378195080531073903403443549589491648874573245100759312205453960533646785780082804174313667573440890025365206477423275230378898586030056304628042794426346340163623493892804828077236363849341277161352364300034454140065463214135246237119315787949761560980244126900590877447189986308944663373929270719344329236373233480884560483121439905945529439530546206412797560945297593144640039540788085483432781968682751224446691757256550534850026954495330869592786355452541734611476962990096006555956188604490698434029869073978219710822354123615508525183127212371980376425677969786440135113967432480871874549702528007076207298082604117436434388657575858897566483029309644334235470136840256777019296692582795750934777543691888880834175099939560641862779040539786927640446372768060067837595369237803316167898419045395918131005444212591916090493224642106322930143050784860627276062746392820789577990039368538305383539852024434901678615514264473973543099131349807785659233084473211933254616050327751553654712025330331143428095605270393817906529331377288856204487011936963806075805442403095065199753969701962577209424767709165523097356303710560156411567498416974573370044526967507344335049426849756005329038605031918321178594766867278506426324891064188821108559849044292768015024699845371468024401392220437096874489457108158839038170790892133038124782966447234917033465778615964347763828594434462931781698169483420962818824594798329618971234401704759838524093139987955508356423725004684120907588498382738237206588923919807477262756131238041245960177513109622908781267398837320280901116201091238118005231792236429477757376628944889889416209798396787213260501458563221424179776703083791277537409666931085503756447693773141905885762326318796409584359981191497226483626088880142972579163196621021730890035070004914640211029009927862499906274608178846640174462021091521731818195096129153753308223076579973308962176927417833580502420070036901187970985522207264379189268677489191703549214674695085115963056893938385125460433423725644101966301284227529018365270191265047398713633121098934208703631273028505722181828814546417608589656024369522518266331131624507006549945099675617842443167579452274643531099641260337604007567736348603138363840962137305684259716568349923571005428319176846010060020709507224723423320278149658325813223921704488742564253019817791597322967443581616954716481562848973572594433211321858399848952712550799451957418603582520567329579066633542138809379642113331385775128608393637932338740039907436196066722754219371866535005576478399443930316631987549688489836713635326048421200372856852772153141115002961234772891731308227334376389835807199145261095983928559599999539324157665989451716522828722284031462496480906286954844128637810276342601672620471357283110793699421621931142805037981300523846494286795472002100738776226715286513003543488322347820832828179286230802803904048826687004237906835514308534842572082715158950190660795722104632963049993349893910004931178925692807121736485454944874275979437604948376814765947396072688943175084288745800303972418348168288241895795211493745235398911735950514296326788016395109247554488915012557638885695682580537204732484026270686172289522405285915069410022862736612402866386078438329011342208596889678427095224959887010769012056003783641220455225368301275824977762044115301548292227042496110277411059277716742217958465621077226415738374144784855737867441301015409629815889052474378177927573157591553902989116423560859871018114737794838049863491782686645212978080611041063047884716695744992087463877723744415606442948688761026088457541353609626364393219535261647618868211053048701718305746908659192459552156022376914685702361051675182236387624977708502982660711312067172095482139452156561304798967978937046688864640362365580509451764188692351931844328498850399289273315475091933919591504748821030673689564452852429324813426246597145932489885120482387451181828580593405953355326149395576796577286711234977280588260031153614949140572171813331454959223965216117738921599547594297734497229702885297571009170625930782437797883680472395453627849598304435971654213202874129609196976643264988826778301916709171991030444264551138216994439113607367103480930439290714024382373916942634282715988424984698144101916774419820133704162379522020936389534373058897020779710258273558130684654135270817092337911893106568544707547576873926724509492292181891107094625481217710200525056471871299940629070807481631830135663602304508980364267010341443822241293675886960185689778821354707373375408659248059439283714007902995372375801939621840379980255433094588525608194573279097404083108103483111960525120994602725793599059996734310398990775990103820669631008163850671514585232162432421157909188549546444482397174822307969367383747826552829508167662746064473127119946844089579908847755558725790322675751759284319241270676622505461403515751011748733925411117194582381027206756368630131142314126809412807548548169295671974405831287422433255900343660104921876952289841968123470993282969149548016595186098926888840993721911822651963994250085501998115509452907189132011653054772519618862571832294588558111663743406830295354617345994470034815182566905597621611699197065796243372430619367628002960764623856467688006839595333515974220657784978709513832547133042551589861391355936703277455912855830762467858902054782119792978727243862977743460567343628068270669365213300426554737323650032129472543216842128876157888177439540069698338810809308489412656954918403982203184924813373804341027232513766278946489644664248202410861925667210260863706058807025908742826539400449763131951777511479183731533282774986099863173832149598950336215458807016298315699376855342256424159227846184824961300492780990064785676228982947334064829036609472513248030937445101575511884458957932253713000353005092248641137493453158442251679619212758710289478146405183431020368673056306920708774293896204835784682831680668726317724914720683481816545686269239684329273705759276196711474255289171528956629960289426211199643159083577696640351837454050521208993898917052210618448517327700718539869929919301564241759131968877871250709221458192247140397367750664864901454798141469003821692550197964858234203787405415287025783705497292389039711196359290719298079222255295245597025054298750819433145078257100606776672416624792687251493413819978757839841356722571311184988717698343352797963492977461280699963875739216263253800230477961878135378552417623923525930164381314088164126907331002157285789951717839788915774434750648047080857906015596141753777574731750931817856391335099127001558314122561918266653265826479548176015400265807366134892835536127903260355036594751664058099156347496501249914676856141440999224646231463043557250149134412643177073369616590613537238262210783202607218144371266515715800528156055409962173112710361662421461907150598288832012566772335494409330531176956097869157907934885652017162721283196082800771407274520754753555603670608674209903390905039371039668324023161989806799059870163548516778927414299704306876970232519387828842269891792459512432323456433898651211938451607763512774902145946443648558227932607154597728015484461439839053237479712062985276124563683004417791250134772591968622251464436030514053139434449413962579667818373637755102516264435304562115218159320631364410882589437503720136851764798956099817722689856741982914299043955668542458954814985432877576023723393990527277779997310805910159140046480384480955389568155653178193244272423946335054103607821260688355872070883044358214801891284060045567199008291453158754588784155056230433786711957943108664346191075567033507083742673559985320749283204038558266777177968315543178272162150477176091252316639399589880356561213664088451264248496585029333148260185351000609813037584136863323312291565439142699598262236984060420422078304564570770857861219359086311192804262812495714254907392827733967065030623928844277392686279561529809712600971882760241986563467701168706711490162244099198993148006431990782171522550124906880718972105022431028894660443607587657693452152376610106793173275396105537056816666514006564153910675915029586014809045066738178663485503897684298122218512932476467511465971875227834504631204148401680676518179903570943773294102187844341824535625984783527395751794988089534557665368691626337500395465205078223127450244769327170041767309108201390447674641061429468165404521868016701230028287010394869866331609764524461559679718059524445449769288711422805745524272534887061193158585737625540124117094605777818182335941030796395886129805908888805717154253859424701840904587672854790450507307171570544748553373531932902070146121910406193033290751293174330210403452128260532874675396733150614175226896726882865281944559858370844933189081610176295024594568491102239663358544823604611870487721006474976929070572374339547578051964078446377081024260742802808491397262496443450696384120486562337956303454255418387664896982572913370096977643182117711481056132189173539592391399240445351747100123914462276496278253315653097473219130924781911472328707691925337564055098936207946722785965809755485168614664981922455069178894412156374925279368756369586477904782823209985644262017683499917662745111524644530218625120417632190024606024104763313848209144077777212310639831783246478346962341130909004286100954755754736671408117551527317984593523759733421558082128081616582593476609961785353534473051085780629794478605963528694010932600224357334092214215541956952931566092303722939280639159028688086742449967601172993612763457429896347923502667519103851189194759433038856982105098992582742902387648531179706236560653087061852906973805842831562557818538452564616432871539397711507367959348119175442901887738122000250708470726062616571779747080238031354393226690116576669059945847873447934644462696554829347174786648181670273683659676344575305778058815792309133906567210073901779763656086450567370556782012516658442652771249060173933828772213629169250067960855217600326570708168158506429775448946341697800262753163135261212281812015687363513351941963814658727029362885911832208202032109363834767754999860923757719919202171963525135187413765086881696097004157561215927694000757155081596177226718274369564881224130859571241566762978079238951931429788150123248008994442220655058517466358086555975417753293358588671361521812110224046107315637576349479984770680444132923041252633025968798574747616021919672112787313136624195148825064689384633828150628774565767504874405634620615180991920793739191731356630229729808602454290213085228134153844859374556036729554393232474490561135808272587351913509969749073957039902592316474342656242195644824164911158950165619295858848945328948660355629269353539852922902664562743470811170034647672301837424901281958813871849028093274891018420696823631571904582832816276629718885013996817880033110479003435447488815672194033432627714914156032049611039940204749535890828023513353121217843374574395851952276632918954934171495726788336561969353971810899404669991487328673730001452744826431825461293852410300239548550597946132876950084025679624648680006899001773301855859373968045574704929931602827132803975082760481567278576397638057224458260062033401081151847895147708604855422511683615785623368267270763309654487975357294845604278009844182359377946491415154187999308070680452280387400419038608210063876408796747084603849449726305804911225902446244800815861421384242459244660859889667761494893490852539325447348397052723716735156272161708742887825270438686817604958503079555627867322330817630487279449600218944099304824585421502733747810541784814219605053379472057545540701478106848351860770742906257476543564542137126890638478610253578965988893474147483878462449045528549311228866256085467053091631287322632216244118608430117639475126886585368925198913132205525814337126147541537890850195851730158588459140629993590753316849317928071113699296293758011963703478272812780683925625743053109628724041030542623470425033213508875821029226874405507982426000468684166157339519408638189909585788380882145776831430120759660479113615363987008964568826536166141924760097105022673168724573544353968417158349709162353557163082451812505159630240548219810743149341960569007088090431280899512359020767558593308260251368999558497823845379422254489966544451836054500676081067678247692592803698545273911767535905966077426774152140000474432619747871258189309646790716435896852118360506451201350556813477387442418652125299657815850976119776399019730017251537331767304512017894359730768626358175665121641527059621027427080584783429617225185664676485639499178853418580076398360609848343800562471711268806690463538636316989911517245582795702567735437583476850152692382978985460865636884408932636018932519477278537002383459475260753251557219390760380328442197898986817062855420708625873661326226705691797135028961541078957931618463983725479808724392673690878384962367326006575057568583334365455875645313385360688074604953782354344313521655908294511173762957536142507608305107255002100431397373758770547589932405676842644421002270907362445083248180623845042842142582048250900210394816165202664454106374108170873309475703897186041240536019131561231663717190711863444086683051971505185673157164823237795044477842781633918968213475249641889341281552226949246169243086494193017524038343842735273505777211360451956900632807755369969396833551726193643448189095087717007812286357834682275032022443007459192189197634483999381618245788939903543023409708438906756761087505570556765223848132014117691569715120600615104559337666044836703687924211161981620123671833672687149434492052269589367106886235027635977460202436810126923789225567899715761561345838983416445601611307622327467151904336352029511560755560034777642354252118357937670641752234846632135409008167455844105317547355317811916074443387353728603407553773350249129809781624045554538365508902224779761104046948205765979616835685550863492006471498560129313281738113599559657817411475800984254233012684051586340609903737658487017142144919261170015248536828311109748959978942144967660042025909601125563165971210450614281731148714165968704065495631915055737577430400378009147560924185748953393625003335626856476958697682492208041497806848950517671156085912172407797408756087050425491100859416112729027352806146174398050380334898485722695310255630715407672068852664391015571534833903957998714059222498264378640463587005438597640522889682841068494245192995984866106604527921528638286055570029634786667171572211506418281377349728687799743022254661525523346376844309071233750448805627619149045872559637701584160293219138542018436122877052349584875597343800326873835439209372355095726900916626961417721983888245731920336640945871373473089021275284797158622537601981054550088209922090671328142285977288617104757173572645172184375886335444882287363596637017121063076102247786548583036197849505436613731131903913009051721251321180200969197685699592473210858018747792423192872540588292282364936058411341298081867751482551498599134937298350989345984596010569806842469456347205215989277319077200433506627081588533236547679432236850532544706872608714290852032292497795832697935382727513343834862480270678671749188990084663467861725590633863464350437213094844548753231417899771943451011716520688729152232324952840254273823661494128741040928271503008259086124043534369997530449237956845765104233869324995324824245266794179551567000994159459890610573494173043268158408689487644968286774776658640560550654340458489226156541448595649189684517672064144311420533716582205182282073425115712413944375030706927753724661109217269824351808466493235430863855417484893654615286650154608552836423773727088285952388914589855752810104380339675377253417415246299283043345357837173654220930152818422049791838249538668575709939289707179092941124771390974451650019404374226582673390555396895693850751749570447478919893646404890172249979378528487825221436235839308216061055891554416370662407631361272386763931079924296007672436368619260661305393970421181145174783348523958920302111093996871355246870156071934596541936788013898559029642160190675610334987144251698369333315761586322674235284282899411886639224158804445962921359253157029432903950543708666455116776849126338893596617426839022549692522791929655872132957434687434626745913226912332942611517675063218378540974886112122676816415978418376659957576427606572460161156670875860911814844470515986135911851847457746912883550492244848262640764322071437672227642413853231974938137771768606181781142413995392563297672012036538505561818579577545854373085696323723682655816015491268383278876566587098848781180940439429900714407960088893505677385988784511707204960395180200482012800056289696977562538639173036082849358171047523045327224438203215859931207607036980280605540801522075240941833235551351243664548928904993282956632828294093723869741642483934463032208359006332653534936937038532203625839428505592273051129959880512001520124518279883637801421118193641644900643058299469082732130994396316934102645332696087597796679189473836921083761802350237074083805671222659317582411930706045461762010698893273148655301548990444316078304861779019151452872872898316406888911470156609497220821151898856211117065370479952744130611439493085884599843360588917008474840788803142178736208891308083802000814600372391902978189900921745908695293185577013789935783082057479288223946318093957756994082542882577987435065628460434222907733449016719509185025574960416700980797933292316184962551728269626373441042118598107588016861944362433030776902842106842801907038089722108150009918850094879050690846327882593530628653722870547507174523910967853160919184166743436822915984904737045829662862667033022633002793944700095349364122031661529637741842542032048150839689623157318780765923173306748061438406553358974644483241909673352373513277398053006960967410002494821367350224966594470905154396415458106839706037165273317088896188281081384175570809140845270661278657517172250879130712359736562270460363794900949443143729396582176872238487045755025336143791162442641498313433882199343257488739213819059582574474156757974023976040320222149988988916256849508869412988093083856727924630664349447572903829241048721862871630044546050628373812164014538474409473146287814557095104141845251406723544658334939259640909589676494035611218553748446335318721359165752138666213601546700473136902442021812578415932853928605514933507014544311998854745541389140720293429613279035153985271766448146521082538217188206347724733746621135741190960050813651179294873482130235202320028644139274381775438327626216093384024518078183494302646754772132290396640963148883712880412891700894296937753808675429260457688345165299102429513804995096206157070644413007448462089373547528429304645768316355971486751660046734241239059480104467572973192529746447573571432341336113824246476973004760967015768500473657386179403256258909420616553891996174303369837643090011808134044223253809277429337115352709257167174784496994640548415982990109446927763986793394468030409222657018937533616880132890643112390514165638554396715028582998767842443005539753462113517400520858425649974990334140360638763579989733882322745621317738342366097313498392381633346164064568263179735879581070844436402365515491360391956985683536391999261122732839695747973006572457412697606700903033233186663344265846623750615455389024857239226077999520743175262706502197631793962974031607838046096025209597175950622842881607921338426920760274007873654558830284929980349481266419534431473469705860634494607374053132804699861693910053359773393261693980741579857053399570518833361565351286899130179872582916587540295509134814990240172123831010961836278359082524959722935947054917453630068991540110378583051598901152719996264410361441608060961048074036774341573720167249727651069480871486122826164242883980582284232177850524568983262627898426839227455016032796960483743585866534453964308234033334742002181123349702529075580331548948910916268738385053083934796375480695899079798930473893311546835464282777240253111143231082944543802151112157977230883391576660144198706376525040190398169748726713376909639835668831928625252643281802281289280509549449817158602325939569679604604071778262107261787154233530989691470455985086987283710544858662184787348976216864808798813861792625253099055594501898056995357249774011854209560250707822828529257592285484946899085480820041759174710671490446458472529789494419735278524063515794945747469043870676626291095971618921305044704773657208048563042971514810366211050749903088127796095804884506281643222266294376632651382597883304927903281340670657498464864443822677099293712665894059651425572829448424711418424839156336627162512947211612050001984029990150979363193298274628508660790939329148990703676901279000051820985812639290148773802428906304723574195873934492007078732563443121812570711897422383377231293056984883871493210016848192786182150653320335586330785162849363632602326405173645535848534397931282016028570789312552437023451353102059459860714711573329825015887100841568186180958673865412342068933337674400802810632352688437007685744079229118586649756858495345439071559448256490679040043884148727314681819857777968433564523714705612684309159299624099468156605214131768355459584605042568702100705854518067868110659052625861748608494691588582655121236311911700660119792692403053693449657224886501532927941657103666194164917712894802940687973073676154006194536318461292331610831445909420953223274344264670627256743417788747346914556832409872676918773339687538222253168148049615438533380482423179742634056566732773379681322973023710597885157995596233331415444656965081730113389871727714301592808339768226873334520119313437754707611482128391809461310187494587487447298043791250179600176649892424176530072700405437899574365286954487192615911648651162661157197921247036800334476943374012292090054946121427316767011272086992892100519704004283872669045742101614796988467815288213200373452271266869752227290647911419210413364082985962968312181881601855987979796098698925291920800591592002937880963361818801877244787616086732720617268324179546958468605746689213316322277994620118581799967323421827519211739255349278484258005600512431237425923865105222527892941853649756204208759855232666647230871020306894753270360584470129447546299779918748561864868269000806325171625212207582704764684467285716809287321842191076470804974757433349023476693498917799730474250438157496729683529899391587393092280735376831712728704280927450376548121211756226429448428926397845467530943617254653018077587012123473093398066401998688181456947934408975429199090606764666216500201226554573169010553160581388333034473140792930033758169530465316785713016166282630941138486594969847559709263831963829164683031347090564210564161002410892590451580171236078900599646316717944185854785111084807607840209501431067960910391225033491973939361101346253123804866942946968541240248956020691804304106381803567345238459368215110936211416482359951594077397979299617543316885240496471103035443101813183669504047330221521690556807074298484669286799037939492865261214842308589273074889447460238818755608197968083107039285384517990783555400098014341548458443361600026046697425948094683494149860861742958917778451717060559219509264183510899325221395036473121925621270334232513711439542605766060396474431109238852992023924251600775158217121484086122732393393196030888389480860161131994161346620795742797855385982768157169827250424685513323746544971912694351145933897951437921619807186612421134298444653918774129479523531807485832877812639074976655822691453023590852530380363279627137089437409177433414516458254920161085929055019463249284007919813247586745704242310044383914956029143909177465898069492093620826214039549028555030399734944666352919370380888092869115024258176832434934742597768514700203297392020156279809720736086763012874334556928005690819071693598412272994284416602015276065655766308701382544119447783661662290861295117296454336511049629219501816598310216997373668304101538886116781163857711683716349360582310966886771349940203518351179711045109151516065730376083985735968562830925995368016210248531033557555869119909005605057262451337810315339472730566097800455895462253634487329702317500465982719789685432209847893775721347079170012728000211361139275484854873421079241888848005557201129813965483015129163784034280654137266953793391784418789052811493264436256730322666319607003557479998310659074982679410625029288935470412749608203821792028879901163579149528324167519500665789464990970060310364255182716557879836764816125089412631395729695373376236183538487557074639767478110733202066389513444046701157280572881997336262299474998396640953422092475168669010419820021220609457825647756035382429551512963174749545675719019015128455819874122209580757515291126741325803670673814496794655157167542244489933067998552988001265673348359676134469335487485603629025571741246610869580920712869535821686827692938254431183163915801868166460820021701477520258410450364791513086485540618045275986900432892713984809336252021618010784608498511255574683880381235749313116541654634300493454093123488250779403763372651501144794178361481532841196674269658806900902280693987282485491855570509471652598655540200565691857785197477299682129982915847544880507454632285866053665119622451539072334952367028677920829855256548316678694691005794368791343334833081531288808997503359656220828309436237812114809369918320633577762246511109561767658238300352474873174683511304923717169760693486006914344562162148710788737616916395469551221647675122588155634267585477899931357894875536283566444257410624647261610373570044778798915395027994459290356125233259451612091459313834133055330687605728538988865059190098964163307590944447579815884550939875898164048912398824537817533101000260128376931499651787556308199055669936832634925945377326492322240167683765573756387940509884292295455546242063423429635145683032746602587018640876116782000859423654856314433180237638924703154346721941736881247429611587012803994928281921992765038996176727875583715596060120224308507729634143646155835660211371647046026994401380101688128427468415899795315750904186707573527585802516105418385929445219804378179543570847838763345453513585294323106579907979359419296617458007216237551743459270813512645925293796608866707587207106390557131817560406950926423441611038634023995192446596198619596767849818341878649220936157222142822772442123895026672140934756856494025560243398171991586889006710318462278461273591820061918202609472057479316817586400190478702685293871777670150027427444376624568249744607071983373915194564200192046505486499492672575634151803263922511747480774313699034514697596989317094639344599879165517013117575913419757538743649542748747643918530070459233822865095527718314720137131436477567523373550073927864613099259595074342150309568557734479397811844653166638334489289527633073738735645111155464740265173452586486133333865941584306665360908146286821109487911611271506879068942994637978418742651441818645469070118856213445557644251246940037622019706566229474128617464786212147688811597189344603790366353391939676416509296951600843949239905624936232664933309454036668932709107696809028063454562556492451629351173347946092148927830087140475393015175443681246614248052700872532840238981986242260739848897780581840681959282189213673896576484123751181584658830612055568065201726847326047692635132454106410529138104426287244370481960443103066568376319688230116376278100785790474993433212302109353452236513197009588263472645969919533816688348660303945571070890362550036224478062875406080996746385210785581241625473106220719229803735819350923246660155820692642707031180023559653212453767412819380736963482696538579100870327754649391311022706742156360639814533258709939879673897631974619779193144471464411189448924826023377198792483714095040118869207253859898682562456820087697511493919738398923938292196681918975001200193112674788834751774160213935581152694431729766981761949509338065637878956887162913033542175310153269685760961401744518764880087740709312977330354836035096287466954759157161728896262085097647977651384266135782987340006715479033842892665345275394808016389706434042430269388657609202975302738775463345086140338572546462122940823299154406892540046689703290282399372459646220714372512099031088052376852596069960256745214604547263910617262296862330142397066652790115598963985935247692510641499412537695885997317449858867501590654048440354220283213848850135374731475242379062555022504260808953245723227177786024485128305140639953136526176136072155857914502396045712201963028097281297777326723160383341130531258425425818325568881635468700563278984651503103108484042935849277456311621355469716437592740739540361852293609497382556370198337300474927519925744375595900795255358467247271304051663030970962751231395331615141789231862082057717489704063089837222309910309618414506678190603940661765774743478463869111287602496063200811962825030054214825659689935230313292942719895015505826974378130051732131297827672112860941016595073804430395879605818498484427427259153467030624346124007434518443222984724357620479193545761088974502015893370701045676970923478779470290360414964050083626351140798177399043969795748884146618743261289501638128748356027257058569466661029785803619512032227597353139381558665693285568589900401767960615024606512145684583421947040366117823353752523286927623454356470985579391459781917704280943239668614874794659324913485883598127720129000239833842484245049520763198228508122902338199261819978259805220845201864089172166043937306317626776427863019758881891710572623487166622686382957863983937030474063489916305094352109245536265567103226609136992254506878872082398947210942725612113135088307605185834035111372175416311935337979726320436146339669674301848071210935821631011495314329884081092778222844352015142959279961705527261809219756953801796714107568119547675150942348594450195290535768443654649601140284427298400096449510305524036053987403843221845394411294454312470754764122391148181033971333564072806498210584054430052119039516379440777782775678760420350413209467965581548076560206441144836886852286525389616128723901632843621422525976057820331940184124231029025472915091905725866501419650461841954897005776908631855415189309614205442797715483483697739603338468825952532456766137242898289665266481680659314602035315121248545572402765936065048957455528005514339310376489359099651229143758932843076628902279037029312181733923262504850806646501414923883741117541087811024682781903549112266690490870708971184264009993924200330234065998874098277597867706748134617559424008550825804220911768095630825304349428164860319811334079609504906265336001615263910213912143461959317292726847995832736868331123238255474470936071144416368178790497985591805820350039312941314866913786830292045113375105559646257474211410969050786916296751977824979596455849462209590806345551940533966225100859305716752754228160148510845155187094363999920342189901054505854545623119349285667850003169385779930529694572685631800212745858985188866934974466317487277880132194294672889464500926138401394064071618024363207904660346648668730924031342520735492433757992803693054799295156388054236889274340038578731598874107960303057437965338908998084884361320590508511455521197812577802419770439821158058681110027056257651698292539975366362332426706488431663296438468606967827351298227607456434958295523768789627192967763905903110101077627867471595323739190474077610732491694899517882770049152409022982989972752211910648599756911503041280678139452845073141553799240380281495589131847069822970389839394282560367839070337204557000302361881577090650665013531472384474385669408464639546440518293274905581118575404907574235942493853427687547688050430101243842999401737176529117592427592029723066979411782256530527326817836088429338281462128965498726894603091728485516704815252550536082604827291808268660403232984164884332546297331067544041311344734704445086930174977147894002416513638998383088822738408965240957191896252004359647395537669636974642043733744018401205244808057429051213769007734989714828315298448060414688257953154414200193243560542261404145546415242860153766785661701139548056926192632317930049498451444840596351294502148347849429484520138626545888993830936776634832715068324044113618144909983656740719942187134500056165132966226721972635959897223245109501360560776105071243082332107711180322019549980139898365267087983863384436483667359985265510332421379981671749245634045358025606781214034557684352020135745701600403796970551455934079276338818237912534727231722928155411094787101286623842892412360046719639529254235013628169693745641965518751115192599143305607422432269136245730201592224295163611833968593323909121336731281954806487505954249126879880653168211376448032316001122053829879574376718629500271481169501805196650254422399672605102457121241893469163600548385812265717090132827090874988097746684089858954686215265757927747862356911616978618579234090447603400809929549396527403140214193302241873723347640431263591321889463886920951089543934060097607641515746678005174182899474922983591066496051961635551152006688501537246225491215345247084022883200695324119818671639982426701044033889575792155616877104620990420384598589637382495015878028739459015370743946807590296645053567893056691519943789054736914478536959074094072574088745213526270658974883503033589847202276146011177752482655759121540927693666959287853213347608836155437506346867807280049901513684836167549063424252601157716336045470201683791837970228283843702445607486463973983443793610013368284010803155514213506281851978572084725358204493991179779030200896186049478322840397804226431351821571603601054092140119914019465734485096331983877210034182304693627354788462870409780928613351141364416968444461184361895229193248592263855541430644501472603470371855257981169822765458015178433725029713306012731115726601983405091679399521269895386548689766088828814308905347557865618070018643554806492518595119207390852490040268658660914131177699602643071213191370549401547539040174013990136113356019891942268070684539243377818455915610702382369231819471229912183375719079150671071445640465427068322147141128020858449711881896297662976493547583795140282188485633107728255160311404263390306442469688322600041401989624559251897452193587813228123466602303520475031733978586233650878389576224899586515675576839990742198400934344806739907223937022897521941862747139052290438195821688503873030560094376539027142899332531607175653396697621410468997761097014273937561637803405691723110360027374205981623342658743995889237374805945166471488298501165474010190532375839506918784576406267414163142865296146081684113883093331809621861990324904995916036987523286905670729566505330544670286534695312926027326026891234761905365008669427647259365034422515520041169325900461568405790032978870251942756376574423164755217904582338559524194058890318035362452430677927362050229020087411922306712708676537731785208959648552072894712175919599361973032315088935182813852287822130879230352684221731755375699009210723892679509162070620330202328645983999294006267512973154742821874223455446453989549489430842123809881061593540110362217373390982469909494057370031389454056953554010935835012551308272173939248201019319067442016139207313485099877869777840165922122383001562016166288699235164828807021102626476579559791491988011163355932851852612320195048211453951861501738734769440483527615955449381106578552643685929653828843568593699518190010214679487833217640752087777303825047755690009173660394774815791422185650444553720678965929627179685196794304079425862757409645966155881372021404551447265635654570368261087090362119944961144614284112843791786253702986101419992167321620541719895305170008156266737401676747276367947310358984024898738840908136033829629311389705891561102135524470059880502011340170677536920920546527335663301724782818739582748150479516264605239697685915823067417725172363751510563188694831086863257465925013174428616449777457366774077487818093400408287443498556201958519423917692512843600660992274541845235903092649749031817117995804599908505021739049516485871514264025877807984317740242323284604671320392188993620280415077116160658424358908833308830113477995122490961567764020793309234512053592793735511292292484435476163981963744036131818061607618401813401610507265262603964296973883024106585360343863931222808515002264317785802812177258539324581347120132948431720487510987379215410199134857600801518906446760677410264755276371309921645680169458827243854872806269070189228468579140913528024302243065549957587188148005386452181927155458493604874751651216495011224769357366569541177642171023116243036296448438919771523171407948301887365477283567844769547117651819829724541129977472714688540799430108633457820964937006851972440419906088659763323431252232711183447905249223442451700428482372705068777622922448924357382022409644255881202187630776344522766932038695439833742687685857348448605138467979138228463302489987345725035810775130267099775111161624951810107521280631228222029170376128342021316963309065914704150644520680696034388712614109473996325634247991281024022285889724963564592679003585229411759532249969211074949789075115779715788400206330089161786375185077610665100095409441219472795705241619351138101942848685696685017889415125758583595006694122126052424679271493998229335159202192154626216958887810177143436772328621019992026037299101765426815973192250627828657587529226731321711660781289964880112072264655737698764154749292608916269598629580964057177327940870649083754747577114442172799683364640577522264333333140558327386427776782937841467528378055814932830742618308044023493624458923276652129039671275343546246184943926750924886177561084079037706231345797219287957449133760817702159850806453582346951072850944708803493344342783174190265350754550970609286509985143608647726416068634362990572190651597855001717036399822888032478665440092212815967620652387549273912152060282643485942972130181030131829939324366607830967761200873708363939403726181363852029513242405841518003044434357483458543199446886583695531444857513652279032191021052506251981484017775166432412276383393088123663124098710658431675803357443241944585451172481072519553502399523498367030203160992157563918777976829025378309423189818539364709641287866798883921401831313089828083214313169164311199265715741753771870527806031297012994731480769392976725652175261245984917631818657666915237870675145263558606923470024857496446431712337035020157284492835971503769084228232950864147604354482405964470804661803074834658672706359288419599726071161026380014342427192602722611400993086103383375881722186517228044902532058269346829672350362449282243521408845184272678196885890925941757749825578334612275897860757733786599588310765448981885425000494541387191276898734100389747902646044794327148066292973153246419309997295823089642403503916614473513906403223660567661602113886662284028371223156111320506270836341036835053722980075192323139952369230298101305288668317907756909069962176920887620142518175454024522745847811275833811635571363737215791428298135160230931067469509773750129538739605284831693301875983581122933879613774690893886670793731717391461426730039569830591247679688225471222743817178185692122691013694044722180854486391007015112368347954798533267362001140046499635242965612036223891121514819512387304211773316169446759027125409700958587256090647614347128127943395184619803719519624909772900301142589363764324179042091997882540692791715596914791590462985407625713901977410824145887328997979750227769504425459868647801366876844720837302149977976267010075036947518448833479527850656071278250901408377501060349211990757037427231689827077108968761633609069003116009503154676691081846975810141006698383250240201544523151185417658570356896796358175063303667834119384718898943894353415300324563285542734009041222134931374657651315554055223847289270905930835604675327773595379850336141710769937558074806830609609902337288580204368110477972727734183794788098383682581284341901030043676481668104990374152205859706792014837586552004211689625883346102073785920467634293022143510804336834395801317740226209697825992010868377130001907421656082374864894871929424077482864626388437907152556367116785680782638782677159265638420066095099816341696556945227653045387006972268382745022031784521096295509390976809959829553179519812083195992834293309327413800308853988972686221311266630710287244597773087454699375615658887560667103785601803249887081349782692244439914809902462645127170310605615660613548493016663478612774280041995597625019644281009571544549500658954853333719910902814183158565014201406927401508563629681978132574147825659298429512241235287599162902751794798359798822701750650749788178563411119845228028389567729462634300384012096638287962920103734472935053604511852930735254297778543347011206075390979491588431706691035622389412036041076634159260745091151560556465829784883889773541775355722977049012542131281567307161218712666168236796503150886615580043288350616349072960157893964728382347860822172157312324622588796638588825930773570514587257329053320159992754329383666277290462980194527301799714044962012049068608575670682961917951009537691496834384290049685833265106387875258902675129206754599468581339867597928229664925256762710717856989152482152236451931847694296208018530655713256237877890063422748078830257957563468439910857784750439632216755839402728282680231057850846923941387165886334070451460516305988412635057031817147946463711036311285086768446743400525303199536353854458330713555595134415983589082175033729806364694038592034163233018729557474668913729591344807095140027967890624035756214387586094334530397113703565291212258297854004074920669505544433160743804986504451702605038407525994284937656910026709217330648936279683081189582128601474952800066437071237338619656928859960261355876527220331961830076433612326221529292371057822608585568361393723184843791749861142943473926320424543236842339094882227285902317714283928580130866754189919284877048310505011750312719455286536422508737530961519807615290651424682518368020754828837660104897186113613849632597429210598150487380085611308865596911376296115178488988960717654080837748870061370529413085574809227067413829720890059194093599856361518790769458028737510613213283887434756777645681983203186863698667542410639712000510356684838905266444009282847168313113224215596644135095133923054248198957287015206882170908995560526838660384162004535731799142276024015962144633780303855711464982290855471128278063177049695311915571962495955924393248130953430987360819310864025052686970009618169899672875766536920525926668321119449862961693251006365760975693593160696334337077523090241469100758870089805373359150411280573746140124139945462214689880636207858344907189441207971414860974812943582875908067379743601472367546113805335569647527883053556034779751314640966648986907497373032887949127917375744810904548078812449025942596367099077096754388263455323760117399425864249041137313984314781481246550584497494964312780397307271794216888911672356062102343402534375767718702212699484162693455791595055812261784330835637833211592256598275631917829430500245673479400124920797507870630618212338026317684062322084612581443414514832150039826891355028508336106133131055083779363136514417149411404262104295528287988787879223771696273151874446882387892558420985308158317188555957902237461295760655224057664385669651204633855439333838842504543070088230614038729711512683211835990567283294686773201037646979195162143204002848261513707494732180478120086408872530327945603393389454634348228992688914300767300190527985446895963460205219962556701350118435739060338469370843481010159589478352905653612064258680099040689414556953745561686575338214385728807835767061954328871990252252699961950120076863797286715944434386763878866982299962033815177908600390732817503041812126169083215692305590211171558162834822645069047893403131574059342370003039499922199673132849951066649342779514492737356053402995315851935624611590205125087566742469748242559399337388754281259183056828467513370613938393072673622768499896084939763499129792750888167023457263281364842664454211550105859396757074979659299702892264031881697570486195506631952675411262621910936894743045004059181993463125596188744354454462181378669965326033895656688239222668333130371128059182919106219508562437586890930030039520611422911556122699807145843061396310065420432014973836493289423952573554971649264552882684172423728512763882447026923930391557934980596952858667364285453592574532084770064446062660441827195021229651598728719919483791555373396947987992951706432490352328170779463323870202058199877591525692834505971978388789851041306894551808574536637228671225043312586134090722057863905273110675356388498362633690763902364890090779343706626855136091393549363226811035805016905935622739759710595808352378499143155939060872025636902329001755788171200404920441241240238554490163665236754583166887941875810382615630615587242860007652598840546472376751270480337422764331263582056253181007156596997517184654467740015491709245678965237593247069039500706009927556957049478968045431800390610047750584803257158520522976892998062312774683085933369032987953313144292582489098341354909395800576626441096536584774781437043318338597212060357411774382457042936397013099834907546103623734268116543436297388967892181502683808834439001073518142737224528821324120551295606986488915141479257824341118315703362088398861414382456652951936751220402974464471117468513169822671374171272152330436926949358573891400316516785000695865262549730751363452895777755155882586009866818294074743562926224708751831798715195446599166305473097453847901727706732715186965502074451194554259255990387597121359272871124493377402952287685242855888180664564149232361024319099088911481676414973111253944816098667984279749199740404961029300135381631991846246650116932215168293388969157834059904758189294443321527551114634412215468920480270396608897021989138386446824775223910881811668248499224428230124382187741224926147292636420611556088555097725102183857661910517405540639937827246117536006846962812118465990777579611134222285046917595525783247763484796330709209769702611466261650229587165331317368884768883251470103385245648753167251117622182802619193115871272968929034622109025749342171671247791592754631575430853995812962983359483429252322552893821802832072424434079588612929698918807980186275743092808677687102094514920481402093491373436115286601539289019433604615441555654719972982349792127688548300605040592144654033209635912541296803919247575941478473480187410152528368373810284136005353849380132293484562252133269798919761748853054869763501736813242124918539900677873766806555125863062956703382866015668293213854771344518192582519352698500479122750674262644378834586272324082459821350251683245897415737019424039404563606129380455326011944822587078729184113072842843794603090091661434542553096869092794511295337819516277550264004516231881401129692969899952171211436075747949436965176486615506101577731685630617799531403573293239073826825747034209518494021144098423428472789523932011692096501003052246635738758415457909672549681664185093913104013624995121371352301194794108301569522523877733501838319374510750596660131133995936662665482966893977488606684585332901670922868678633614216234562717601892810726186801637908506126358471898748551020800431583999112310152879036581188196841800183458844600652832665271058117949113463291399686079873009633097871795076940348020572358773848373417271535193223331774097644887239320453629944307971301171532306084560475090271576910225291603395143809514962770103833204502251451551898254690771888473637992293264419166317707249804261685033342486202141408899501461162641533171012091740778501957148477857395809652866627401108061185956036851231429431616943500694808645716268111611783712020130225497892399067370950726361313468503951149282795288918078373678685676772146418747976908533368462558441340214266921953753956495481751944863208706170081749810885080860966600882574473878345205349709344606204928290663333858310495243848864010491285157036844101730407372223332309405869396761168293598627584373846704897062129900492249877914018539128439395046814635018457793073945266426008503605730480753808605447813311507980630441586322562485825202983210420019458458752634884199703048661773453951359090043625587548185950951636270190338716553686373790309180887448837198464761958449537999907467887793061171620435335212347688812533675860911288197115798122045964546295791516528240284876579505113023461181024504518740224427995620879380544167298803309063071747966400272752896644722808331056333494611476102346095437864868968100676204723492556811638927012605967120106174606454976840529976188186318221974759164247326428577635913526206064522306266484120288890141453352650961677526703880040073224203521885584884750277323054153928856013458315632280526650235647028221100228942289253834357956739691193286929253143796793513979311920244802006632022999663760194079125378091470563002892158529235254748648205633089855100383689882266518410887307230229826233147800581237216985338699238677366077445024152937635551586938336625613041597429882195383465869315108689264538955771349747801615687845308524423809457498592822575053496958199682457798576058808308348655701114099086246017555351915372471602886421477416888326787632909973244766412228180521894596363610355095073239484802119934348787599842196268039947046153309136852896280387439837011453992331865494251202123664841572581509555860035632561337391787239856996735096757550310813436769837765009569422056352576001095311094387384024102641598025472107122670212397541263954771579784098896253345443538428225605862394011299064055998912497461987576590952272922071475559486534501272730820083071957533925931622211708864225786333395443085778790166165183341428740029912441813664216456221147481770991707813574359595465911300249189480639160704479582458341768865386848024075554936427422383091705777073892127350465763204019624316329156712822365569516687331972034518443266323670701636355315102421757476417268985107200195227241468260911517384895981926731321540793298516807111627545308488363896614927763574654502060837251039147061637379064104327509824110185368825017503425425191507775212109015854477308075384274645849888238398649311253868248930900336005500579949162034842823570652555762231386708721899737475963033986542198553094682070407547113167511352325248861523121121521450372557876270416033711318970281186651888493966574245023076795729123716993810839998331719071293969835490862751435802136027818450912403224709144347728958712023588494159823407091422979232508424800622191044953185705891981091409537716418224100410973433303942904520098896332862470745760264217833136336687353292569968975973579142110425739796832123307636306263953140267731514018332074290712812423793005673971178387895566768796055404891739009979158822416965368500585508043499512614372384807210355317465605624805271632451967009859325510873124640379171843461508533470646726253028584184092872570294228189042477700577615347100695638642079565615781518305375729152066050126487255933207320118963616446117593336258776956684804967911834521679955348673371947656383786401426155994949084858263917748356704369972525785574098425646612013233178944838494445461236033666171042574210304307629027978133165683494296709055367971018069976573677118609822890526474214693312164537983530642467448446545948817977041035320201103175191771888994778369770927288973423603726535521722675230631275040148337235760826332596147528312382850864394354270637836077425839558483804851341768571450636095075269544411523134389682270791200961869980124064664515132048735003982015398942625245947517170168577492297397320393691050907638239448443660427137711495650800043216477006122949501084054353605675915930434149981695939535520204798563411227732373648616397124140284261132068506013613287004465887535348778150927969708365976555280538447208386268534442395655791516737826333428204058910496391546323821206824847313028932929714946912121042967713428676812661814755557901395118120251314639186256538750547771621586671615908365239983805454265142702874936989292420262188555334407639392888511517985355896270364116426886820386574289895991242622961095452778273300561168802798962427957837475544700502545044228671826737074744801143377909970323069752360525255862218110013328753781947844384035082269330561822539053607396605792057638446596366838594496916523529830871326611993269582589651932735110545026680065082052819332786144015879540342163820870922086685222348596372790036763830433144390238501401730197080211017852454479681637225000396921749712838865709888513218263907639491603456429561035462349171622090578890690548677882345824016976445893879404854753706372085790635057103042713349642238308466482737152225249381802071987457821530820514567411973861613600565593272240782350131438034603832934041878933488072187402609573232327770532443022006803108537405060584560504363721141441145573374968010094196797563902972398722090660416062242676601454870506459157477665053944222790959955026340893376321718146471363036104248187872934837745990232852239274698311000834606951648879398488707845602310284546378450238747397867862163552898540327837623682890970921834274927257847433046635522223250684910193620798754154460250313913151254846825576892112198145816505759466399773108276284496447091824639450749461171298848029382910484103377507258802072688499041764411216399278728539475132614252920309013785290517121916263222025646387414773669402430325948830622803251641143208263193237950505230715390549511471981392912505335977771779431783954488203074290188745786525534527085941199291142434776533741110901507964699730914900724984008622605716335963144182992375191826353061423236878219490146659726742501437144382827846856070135883531214599703530029253482473215800405117032408865981623834306700659453798810804094417041707276856845892451178603798237207992018284438528537613281343680740394220416143202420932489669528673452557228168397527000197056398623013564030315941405774063685293684659295718422090493126430313865555953156026379028270175716767204281844205438571503768833738907275098165879853940834891984244572812891501453779052877641292072074160792357772400184901212863777374893497534228268735752501727605807137051339349984821577460969033772614873957540061857590877860809418179575475677946112641513179583312972411287967481732840261427790283830190139353113696593992737360560998087612537580033509965310270139990111785616190317829096526987807109842091486083806694300071648876870076317676983621893339383737599505088751227454454673496638600224616816667626244145691369366596773377924954547808108084607302513370418622137285623262731042984521485006601921304645092291122739401759225931531307352133033289256659769536165708264235607736051965227186644683259163249639604382918690657696813292570706019785044918643282012368596173730181913105382906335592884751892796111531442137521536841955984246179226134789417369260847385756426357432512527518931679699488492820837072995985433644969670642296422526917030215320857735978820679897280930512097825349188640858678913475337159183540685656539583097069092032419441626797715287384795913315431195679195158197845861540463459397474520998238513128779091536640863348475140074923797959544170604923201470194145598212704037078241253587507690088451759862017795893179639070658426087126397429542858632364379336275214713986786504084306291701157472700394616906547546011979568662424430328203875407579745421958952283004734943323793339394916752858152480600564150058763506496734413464653751749766684354225487143122093397201817949925366803767431265315267369250769172556018588469368685966565986669092320312901008376687311483919169312472730807654546706636946571946027521736356716962057930704966685116086350776740184165625467297944287666476185933663826716653397249082886492450997029908057039281560689724022932610628001697162079793886293248532485400367485766175332342509296244856301719200518616640086403878710069423666976194796197762015254936999649618828879244888906553075315540117020789114342845631047342397336679012602734611044418447614228814155669250029639677656269168984681966343689120944087457127386492305549316877527838871003703631248163019681990498100582256105413896947441945500675644830305428418167660726477937776247613538088596704471861787889547624368431645565307849308887245041777769074388228066527626047635805895842727677085420720713236141552508665009155841890367832160109306243017552977355254583969197787393464607088642012449117391591312279503814943754634738127409502297701705940087119491948085863564678610820190867121336571061453002120512306412979787679289874756710866517705263954771249095788700286694041246285478143998447102781821899503024604227005286891902409721373561378932582738069592080211047425663914923868978185603271241450894022638042617311450125874861385423091183539205319082448538237165913523165919757538686960324331250542244306774631652438714309029035863487157032330161524689327115072910336569814218347997832784757200682192941517763257458823231932536912618718917488579087573820323530999970195223214326730494387775898162952911611285928209797692117506146431053504819680686959109931541796841779454252494265180155202765755886071913957018710006751532062496711082333378510581485732478481131214484261041234230034492566124118063674841714055246312550577481506949099715788425482777705709643036711359878315717724073873558325891937161697969007165773950069319934209486165337715278778725799123722434920405537370685257557524812300045223663224827245511220991451101254502753894801136562025489224435284078157823424419575720565174788958631691015172093594886636049389987009312347696111847810337719277690245737298784989926140108936814626709177124485897443401469131556584072844990000576042459770661513321980361701605818594525918918757288293302170468584078733058317098720147167334029765184356459912151812826098987261454522538406274109822272189291936890800135971913003951370357036930585363650616183913637469187435594065814790125004440886452929613723221137729973272832626891914719283640489365369039401498128490324971001605425775839971265013424219849237536468245245716926290554671256038936791888770291599396137117408339542397639849547708669991330792985304293377489323804417187788357382330476063447430486236404517481322026805309065513823510428088880288063486552053633992022236330170013700587449384296610648219895446755011270449660625877449108711074551832101651536805119473111296267867646823617396248871158691320382679027635896100573405585378564039122700225350982252470109239534565307517971073064056105615714620681744472097437250089380663565529258826366714770777441335211737209800564698020400861294807993959908289788779067050693277180739710378233737238014954890706233795526025236421067030879581067453902106020937549369919714895557115827661217831902153326268589237391344098827903930309271245402512112002070664987514219866386583606638229982565837959270938638663334202961342791107968949955481619354980441652896140725634657829206203934808614210214460014292851493811561113364876205134141013351789459269446110760859700524074856198565005406193269256705900454283691308154831106928468611903998022335641095580528374386395580655964434287959683801503154894038396346648172397091478769449154987261382617547596521433760512518886305927925937058251744853692667331318047145687247048235771162800042067064006293139122702111241226191240659081327526465011564314315035234019319254265696391653112720808040613320891325431393143591768385803630918153579344910294835303757653669804679919763740062663685236115623503018476659471400642787644226226723625121670419260239372740858790857629018205504936261904296190092137934649590144572822993370254748627171906272755576102218577233674410562231957140296731644908208803373317027061760268023508482814857518018422553401856423086410729223448775666676676235468791470234500813074318185108044921334050700590885601626057055087673016886925689754107875748864744930515507245168144403266074840982242526106792708757202309673289131049747470253174440578408832278516700843799589573918907617115976524263081178326387167552442871971857463347301078629957852737977252251633535283723771728495585025917947409515319964938090092075677070652923889572100186802753173606633249677249257900347446718888481980866551278616271590232495307123236751477301557957707143012561737964410654639662275501057065448525828953115824394804340288490522715832827508931490082912562473127465226308307910500168746409557081728865259745573305955488251122997188806950152381086246240789504380337416052579769375653707459163582313413446661734239854127337913262784708182027959629352634506970140977185317223759219773701162615603887741103296151235082302971661852593307216719889910234061162585700726172543148103642666914387853197584647350742728535167268816385285191647426859722262890480987792938364598402189812187147935306300884163712709482446129129482937470937851305156915885515779041584173070607668194106980720207883210256737666819258241807909946550175584947469317294149675087682602179813268604747485719364234717773541522970807124422230063049223061180621046596976423211998015615907693644104281037515691450852407346886038215153628979078714299903187713589486391686888192054556681082790160536653656280835881318013840204513643322804471320297086050475460076048803040955688532458007379426586595812096289591503142977855603968897747347006797070313403874187778931759337111291075726925144125630963571068999408872147916811773524194319526803834621465057407979681904417088576388141651754173219646623741593413791103818444567468355850401519221489369451815520550825044220570793799001042507163562046723783642966672133811053377711019142271119641370841041814766889512295455497403220531340684415466238732312541201787334986572907182097183943123246256397808302141053422782343968406018121760375848997500313762903908344223381231572074171316738732335768254008120629886851322700361951355818399253760129051594706022065496537077816737262277595585960545834654305117834391269871031686376645067782454365506884399098663204903966825145445899380614433844324946762341412215247822840698875258917416122610153718061926399507927993154432125161041783816177430346409804150480933067194758802588612394716784332868789330821924882818871480021297223405871145190706432266376470291874557577454300933864446159686767803792795593682851021067522733818224056657098950549265708393293414616371648886061672465302556402248003500271211553221901593001693552910603008196128545150195609095057287085590028883826358824484055483310548801495504973902807202782917449086647004322244965253086382485127003297413612243461081344013654768750064726892476842681611983331566963840979469715845399045386958565795747593806273856854669904671328047657767024598282351660961106441165332616373814802710505895091221784099304819716735515829231098414430793242567687883242228011782996431062032628894758391252019540465269106174247226929103644135122877528965472256625849907253432197421348266877375955293180342248119020687446609439871681061439326717259249862953104264651264505723899245638238645934252731137099580764332435103521792070561869404576639243080181039819878135560517801747142205164852557427699471087678278203505064675472456333858156202820581150242165758149609664522453080041082341815860891586764452259332664764041055784902695358533711090122547995271245628313572085800802617616009039618883595373947580814528712157957346589855226568617365531807369443886534625169454054019728373298296857984970641403102477281560318071722062140988164857731331154620092819656788696705168380464554644709879395123648634798054686320377707832952053538727023429234839613240904596367029769187244794662170689445333531587740046321010952716268471513955093275196790730643177002419808283690510442453843781497444227747406255614049907602618304660057483736527108080992342857744635324107259425218681870213316142904262158126166252536564151067441851842104738992701240090073092372498098723934178960687087725379087227298367862788464608388523211411554426442847614057363513673275248134768977423122188009112525984642341623823434723293191731135608334147340346630567510632538511224914755635248103852188750677559449653322891717083525303175202642687524816501321509189607233085669504913595449156626516651048823688841301836999370714311792011581411568010224727943345209645646917637270968247788902328486168285953219886005556134307662985189389750647858481986104519246277485446074380083783171913153459753793021243037213663431653141264697156826676854095448688241154247390692094191357280358773758598815535677498526366940930426180063869134188537155783535989835317205206966991542526389636507829025469544190188636352865002322246960513262426927218917657816402003973818470195100139835708451060004755338086771621602296592812506150040727139001380953426928852359957300714147560134697563292896620768031924226330458215000394385169346784979697274482999882318540728038338043795699570152093457556696236044771473985799740584447618668814113967339523174089590099528879875811324237618883040356085511756016510886347470164805826544210449903633376494729266809310821729280931640858682768669866320349478742175322060808780132543169144469797768648383369402017440909596623875006275444935938036719618733526947272505655196896195539447003122968361279462258142708503355479501955424524153627708978810497261104726712468761617170080085667104551871287095373324010929970688336248286165429912920490636259058202414809184218523799567200046988239931381793128251408744318722119189408673226439222116465489326667159134470012565432489532686322930706063276783290675578725470246215615064262124512955770427366285964907722592734991308173380659559605411622346826054147435825551987797550593981029548106968259681557841130462697261579105831555682733299052307992617688472018424303483427574547644302237812926852690753052019171918341195012388567012241067475615116198901715848097877900011884223872312131825080818728645062025239239443618850594840353836952895064849077720742767743676286821481371175685671032537812194601581863446074263808011399148442763038691540911235044647206685218462491453432293860170462899625781810787535866406417518473920471982683781765590606493060017904845960197311184296974476340172771013765940204414463002477075950244584921129928011538225139795425421779288337356835275087761933668334547463904935092463463309761635234096455196595265942097879861526121977297108191474439187108835255727532638974604804172096166256765419968664374989876183922138990951115863806621845329355189168473614086861603196170313840913671645173336853515319037641724151758135465741080276816722876887439490423693364799703493199966399722501620771379053294412761846717351859391660503803466732356634958894704723608961793290963099651877859872675094928560296804417518038705184622661710366445932680141513087445335998624239140926298568823311594802048516884071558300446996306005009048846465201887565643277046201481939973026828898035574908055626282961451493597712694120266953639040591691368213242443136613341761440428000162435044053336126294688459732628474232653796175381844244096778228881129268747865094463897890223550571525762225204378035066974878757078322833947476372484505021574893525841756183014826596759767456028882241580474033335954080435429734980902217889809674581612583327194770182381838253445081496750700334427665104681596117165276358995380783303023558425578393488806510859445734564335604100727172308163939670238768883282250904468822156004932673051318439269555888292921349157080733015384020595959217902849828536865266992058197897073154242322438398944955178336927458623654980781751080201465365546677495856141172343761508522287928071977580234114208362333713244755501507325732434405522962805894715221166307248738620453478656784570448945882671407945591835143969349659654884015730180377575661033758183214434013133098008078586081834922678428765236793961147098464518873549537009178611607616727951244342438778848021105943684696117519681585780873021288420712055875701389797671007010965036422873839163125230564873130070310484521337596914789693155077781975583934421677287505592875627340009782404712913805215288303515887360927909515689935837845634256038194810993920029012031546830365059275593385425961512181433800075742778392136307145191522782734254351579583458168689415509010681710526975156064892403216553306431281463377802801540239286183362999391351750874927325117731576001875889345282927743367017811408196547046669754375825973200596906532175015274939331272301707737755831095326111386440804988440715803929311771004434734608096653268000628353608410316422856346134915887609501517760464538415683018290715443291534293645023642018800373382772456552001297743067390262412963094822139200899044473387546458408999557106830896207180953077927667806916451056068026378338411014935849930442240727689397861785914536439205244498453720738991538788522896598378311825254780895903038003197487824514251555535309224054035141842686645292037918202493308491258542305453315915145892731688019762206771526889853779270050935729746875799800715464971215583577392783450802010370282267255385674667062782355364034829356646805684651059923183874029446321164507423568050143624713197230333256880960766100052583502539386971980418278605257884335280778507317837934247173813856522225534950926699323152197673548185517150296104116447700508467820327281360854689231999864289375214239605951098606450536845611553805238884603064446872492721964397376546288895996947247812271960807963436977655589855961195047444031460918417592809427209604805527530664577013028377392116775797342170812442537894260778665035194656227288719798398610646943368358972197309365205939650806819158088444704640033943314566828030154267610714452097791673527970728906845758320185482348388674703853342296449214825602260399174575253101001860605635697699214843351771281512932083739377148421370185007787307759958638776067100403622500098841149280333098393323623334188452112875671506809253756001886662984125157570916833366115953838356735946375049457942848847801111672045472491104850538829907793723427297280808282851345777363299150038818278604102441256980351737666243705332456292566453003943965005444051455518056362572101022002311097201255723795964724202338926730392655881497491605942333091125352983184021913477446817787477275680512629452853345772983993081319935967293362944179382026329955099178432633610184507695493060677336213418240171381155565777034420191895814830130558407772643385422485561412887397671493281584528267263792640537116325879574783841217327138921298170527778298152784311610761489607376916658849844269372639121561513114933376833387173333117639626447934637263645421519837243205248364722461448190564337290975498212655141057385769603912074462977126055517511512666456465360777667021185387449621602868930495512322526319183446055243202313553172202383789346837193161335456593309824487915670848112019347435299476092587510073930320444410758588235631225488126955999778375174190882001954419943694974167994798771053743512012507772901021044723058778732756975193743961262969827717905070458048624970032780173350424304890096040279397927950066116998225507461344999202437719133544716019518539418661665674812000072039444029052625696308376025238104912418418501076028659779787674463876658848471368067855067234202962369837131764465193239519110892928031892404910430549015344645854947212431458430348337950373625691922057122357866960010808564053455908673078067438436829682716485048995505341601108561866406407495532813057948712076946238615331049131028105174442848661264376164412346020692266650972842431954200241293293067195974297467813144785793495661070960255529835139381065086304195962216311829000822983821439074818188747070529361277385611773616106511807354052129429346292547133778309690947737135126872149000163101808685435502583324392309299298039043770845373435621465673309414231448080234532961266211055969446495246809448107750312579992301051681233228107415097944229543702308219849394252140206120342742081283440361920622413410905339413211703776154199208281924904397130785235812970582486110612542457131376703456534266890310162269291537698586511349853229885037931838814175723866129660663098968795596061344466269829712300421074036738491545769506876345867085655688088078385466125418459973842329315149368151047083875607991802808346733411471281067421595030558711404492463670698451882597895152099370784602606910645079856785273041147378652825201404008897888527772051937040327112782209393148368718016690926330907800617109908493600254833571109938767895589103914161098419239602605108841245404855020004690524285717088216445788474845650999354793214699451921712389658083678697702813993916737412635268571480941419725089951397865934961859182281832999718055159017383636820887862052348656129880039818105003130145888776142649967075720492106871578924570414531822492520234544272482520866360246829120829499897820617685433726268545582549842350732659555004427903545891305904250262925074197208525084521933880437604133390718943634383678352331244431663169923763706883129863072801802065201670303459012644711936053976553989874592201420908085543030972566695982435465188730137865331155574114644292124179121148451167377340307532600428865768209968985538367669339149912153324513133901969338692240471991013622166384250479009747939439037687293445200908512213767105985599423282086991090004064719728496517058302990001798902598287307253990870270511432836447072056569956154883757452028606192040460821838273251982937804086494613264146608345074899632422995298830583185077053827744108638274062520835146044459081650379780758544626359837309710931510758460280663701020472428217210999618351815331231957062865558786384278538109015685290452720334593399792427147352486048620546337361589786881165771693148498455744061208318870284213714651330847218561016856577120187397574344691670776688324744491552951720459716887515447352732530559751932570071385849902934415004174067265046382445362336442875721582857072488662760936085998917928536348169580489270800675488624564376223212212703833712971954423698770800097842003303213086701969274097181378094253625779225262235978969460304882687712717918958806158223767067345862868759592692599287904646206282252036053554674624909430934372597562773614045837183447425998701600326275387081116640689056556946722484557770743403756302591814213311732694087263248967633805305134836637811057987334777242248810102640877940853928260971629247152342335239806984458548766411952160745548015733360128880693888915473319796103809360076090917765814505952684370474243923630804279497554159112574846110906291282951387719688339976426335634072729799553781779128470859017195861885726287538343056010893125990117586757823818270038876970203990740535038900144193752131529677827094023212575069809318812289198516395120983505623823677771886045946918421582629102764384863564561016591525783083923891120828690017033766009304662585877070768387020711964010460206052451655784284593529844769738735650982167913752387934542636598605318990971149203656664434018641861796050317340248652445782391609892173262598079364352561346981312577883853744602066744195360478041828782204174015154876975719554825421067526985394805456449277232103736727633543734113513478185766613412127704422857941081214247013412996012073364588007789868773462512928933617846322742969836896416360552973512599656491857831593332368431110667586369603116309874898126737735525040277588763114859407942617353404159817188427978054646733472396489725056904846289428189985997928648884777142828425399589548468243546409787098839761102315384419501822773370405744128288779238009154705718671207795357100490707378207815757305520349248699185336622575660918894134384286479588022238268329828841432586985479101389509672072508638185357448132794672382672776088200977702791477249538410581324803044066799163780216285183007987221279237323583108728871026725728680972384633412946898339734007199965969471566514498451711970572159911888967637259297617399319442585710881887600403521971146146518045878978174378947100580824785616401126467759516441001774494490909814676935624531247950576457923038954583490066995903774438766300988377280156691979607044600586013975876637498638400540470439272389950122804188988436923515509382142335569961778520412907808112012204688013980202307571739215744158594250625119396400226827663546160604655778219082025244941614087631959430242801645381112137122974564075679690450927531573692273109476573111816525278513742969288253370696780701494829943619782848444211330553339500599453221273448917795798839152888216920166446798276600237880122652261749431199473334918550275266149670474498884472272580545532477534729808034692462920741519037368433835826813882527020777608857118069076704093757116186075727163642925455202408325405843005512409692472850113400316632169542289306189795529010700669846224497747047149455700369341318594916379918368446926499822400776974595717757472466870427401374761099211010837022992315662662395111355809078987095516409656754627700058729128994157595311983901087833815070727413189550027751919051845980689281072765539160903498573081064680674117429175118249189190607300014759026217687855730472245141767357067134510583759913073378791082963474124055770367807156320934268481167027084736871421191738857553208663687453472555760710994508655850830573764529220733643515633656382649571958613101404663131163674897377771003746503889375863292361781570391459555993057108556397224899515113474831217858590244521520306870671103799782306010953157681939782768224558488740031391313235146211645171432348086761908826451940962769402300897305631602168632805407653509569821002151882890782568385909253186180660441250877282515537807083484115484587182675588482733536321520298237805450266415357766848145480074580976995904287088229180985313622440485290746351537829713357977464677905658728225676857904432488288437867662845822976448909958674331156713957629836664106800586147133218768987574745969552844296635638754891940575959143962352367846154179485323540817128364191628993709150905153703657794554267752350860128614990386670228031529606548157027190946588611168096219635621316801745465896509786342846771056056583997538714959500865499204118149508206028048987427004999158924215180816165976625876165292425129465735821452715261085290655576545849060519075425173539727430135699299241687323542731825831406362361124029071261867183475529607645800972187634967273723981757641541971370750572985528473047904579540792548493539717133095907845641373967643552024679498398105518534540392131190770847222385009345903066355039746297285367068889837542302738917585933052322609650576884549863023040658149942960561705414293571133882325844257723418929415840869545923621280007646101620040512906590218990019008517568687128993559269893519212865905458585467142998072680525695729949542182209703806384628996066696231015146924799863506204389391653737472249564357775438294367300642886780046503238110070346878140669302928240284902706085881884440132257064468772201095766408581507756032530524628793740349735476578432386550397365666143223448639776370428000173473780218797506799354218706426172464483313922470263318908886467454056930507061678324350670763746986720588225781606831899035441417560741745757130433008827611500106769679987921560520312056570679446558706411546775364197730763205599483609084150410602615841531677499948291329545260900546507411874502549621927720428491655762323385127283445246760265558346513387292325804493615697347228545972732116585511984060677552112301507625284939589782889566236223696314259620156802668877534380253296456929118062949670878141684194073189545592380210874430692025180956589772583594706283792525831244806731839633392098467207690570084934215252653670995634180783035346700150311580117877169225912758907161039331792664269132710104265316157263747125369550297565275686300637639408115906003259520855608798285997518236366595489467239447072616025566310650945175929804029475521622126427859879455590410439414785122613280500766973713580319608521642551635757630791208356436070945319585915280509207035925089139895039707033350207264672434293291872169275936531094984606007299733451498543198059334767457507864720740199264468801372672160136665942663807931435823987569559718617942888628467020086879732302864114237531200089410274732174863488687856217178324107401331471578715018941840771533088285092033947004553977773577442099845680268983243178621872266698772633492668478066739887570283048570076902860010013102695265716731560439401165784224579635189317207820560513095754170486769747225243737312947744178343038484282435117426261526736773369455587255412403245242948685430670717982856664114755762275078474626389669673966121929812155056792348439767781311976659680106168890249467521362843092708832815234450633755617458710177528935239571685566677001616506110578087868645283557264634599220442857813384198612057821044192783611706773357470365425334582260890178027369781854462164878821157493626014830171634588614683196782860005262958300851270906883229234064808802987934643448561264242065729262293234604488390631983656288290733918250219763290305460565675807066172402208434839528166712843507315582429204852318461281085406486624816863041260399868594416014197454080244415973111860254552445700423407959292191730702273969704968591070178038115743578898651540127134880612574155349814989254081175847050787274586595355631338106059832918546326482266304770693487658319227741839449704852362224352119370025572160602140898669211396123877984719610543090689451543918504163022530227114426666739396135229672402268486876230122522269110498762695859198525660403812125617736122855739404762793214829490912860707967313254485425355969320279740810342990851774479772705228101097934165783907119373510296864170115605610105456953055262172782382884280053083974584829348280476241838359544383028403625790302841834610185386130719780788391042693763871916484999622565080858163767644914972123656140661869085302272029418377696964402294050951555336769791887987833889343374777783682474591151684468896037086898323199892337545079514118915127699786777460944134604309830404698494419769234524359638004850472977582796465140097173860444042116312807628351697793822198744124806645735386084071052197664072533785963771959036703605053102632483411743022923478714465054742676149460049870569282921754940592253046856340710712973235388978152428232423582480703826905679497610503109577400888313397422132393210330122554208382648137666764056331588528505267115100914981042133489119848398058150999302201524092480515997941171675764568689402016894997716738403398295905787101548103021388401467408120009967197909310835990806028641841604235518659257043053840226056612924720306472684807952461933086507817103222655178965014442823004134809207639307186628575835245622822259194093234223316135234831250120808459120097315962353048163151808525337330641078895800636343401014894606926574731813043421472935004907147923817395003376971815532326271827248726222302891244218475180189974431929716816854116464419359462041329170423803092498001346867289716564402836378075406838318591664415890357817704548477019982441346386938432429331804593081520086044168193285856719028108729469240800601158026449478095999330485765106789965426726800299441220591702664437165568642693429965345520730885546472097995391775254494158193706762648991276629787796152942525281944627112446787561219149759796875665013818923519845612725730060840466055137348291901242733752845192384708791544189440086169832828384432299801681439604242532482815812487093383638070805570481151667449721720741241412551355785326455925289716362468684056254431304050513300291257187132564806825200208318486640550997498151263747138916053242178145138937714513905370728974593390358004687932455592959913730804542097572731415699915276013538531035600402889511740693345915213313772504428716653497231060005009217951816508569498736906861691251800398404680173966036596398897744668462652375976320027054263405221048555864221377314588702037744510098673786362968709280677630168156352099975682999229570771165867386150437249164406047757201974949241987405364284845842555119879661216002960175219365667654344230762469191740465184218954419906378437954976560482428314099285974601615633412876180735257978852025840271005862941245061150689164331459667872988682352245604462856784500353018852116611232365524439853943836761765837160244809832059904525785067633663807340220318011237577598974381217924608628574833686421952318813143374231457836686856535387227876126517768675049689076204807243524737628683919531408215945818491041529927803456876767224408985643428428246410200256105040731094381407745955486918290157592198823903431834522647548599702079113277492307038590390744873728128020955588139067421026995715366217718063163755267855302232138396673647480189378390313180431523667913696095300251657712508682375801016354894640235517171748003345943522250426953060515400952849398438085207529799469865791916605270529167790040050289560541068267674047659044718746757790020790653546494016726665274477513152229128242149061334235271257269809446774770183647459345644938450658674278429891626628551640511937030598887624936066774593273637372025409449638932128670376209773690224633145617734095739602567995226320452255301178610542390081806753383999767538945252193031406566506419701691406334725546682906706958175381076650130565404254768860698735806090127836651521357755052312853436884124333543817457514841826681550533694799185162443653138946417408793376313903797742310408730279472922452227139038453969065918802699547497002665558211405827687908544568212033947336269602642383268081922637334937329637233376384373085096305118653102018381839217681920537846592484671742298939757659376236081592273162478443845101857633105884271865683121950384709955381452740098947116943004313273204226235759761640256878070211901685399387884402674265169131970650736161720459179271026820357048312680801076353956259488164407764081856691657549786000334496246755359205531765589087765868109104991201820376154135667510700542707974707671427281118166493472712945562408915774822943361915484118069419322641761051960891522823806992150481027764658624431042570993758175617284037481179325135992083893691949429030297751064456913992532047135540339140967554224659649896965480116902558583951329761641418473954357811092879015523202015109553692122939551442178910716815259127797829529277016187127009300644711065341633435343765157025801294367566890681967312955030706595748903206054645665759020993903202465652255627042376403927769921688602039417961261703457551717378950969197711273092833166889042772701935844505917242465111436433521795012704014462330571279513579629047504627217238481302445735299217169136370901668129784706629420745063799409318304393468244868761623060199030854455167080742409277944562969421878498969185856447339039772258407785576235096768429290409586547889972678682743426896995764784900766039941128841858788763734824502200847560975568772987355580797091962332384302015194739389928178743201152308609839202753722335775592675156528673716484418075236181954591843107006964706448717654441807867055779308863146160272465021213598428174053382246629157884558223800289227022741438552447715875007604622190256972890034966890804725446222872410803666025777818141538280296646388399818231703715939015492250223259227529851594618673296470298144788092347102409544378644195548162351115211984582722498912193342652835280867302382996608019037848684532644591661539165411034986396156998097267323239202311904439087407978719364827233439357407481401759460923061590752173932413292334471938172882849245148564546652010162606311878223455287580349283337440780578913894524183748206526618484921202554894608305727380474020814051152162216342367204172605049571900976494583271439742822031746413157073894409270450718539745316944228787279033959078573431663250546238547346137378946332539555128912284012864295170461889782486050342779036304640605086629954545947781198531131050509045661131650716612170207415351964569239888019866456653860389098289262045270287028544458682078393310113601382833790771261403245026497751439537956957097897779320444758962945232620026840278233944216445314820296101470349545672383567530368692390465731894571945200152812420045635927542471547028825898341633847291364789590394678492986357785355214300041542601751225998911004953066968170786773881272329696247216797361300933406250773671558298070353747753586148865211778518244378527384253166436475661307515113117825510291585113616579883136353199752958416344829125547995056260582574971262022090722736036820380162468508927315937616400170543862114100081621808744078179700562092794670878137988971666555578318662358376662029593632441386686104282567193462236111788662590650664152023199930746696110920874067719012383253194471107811829279888753091439138404921727332207440226975563053815403028538652847478740688523306731026638011197955246383789507072476102948473552695997971286554140382608827023742421409878697787074721638009862432973425183760861304169582808533474844405912029702364088918840126570740222134217851510476279029166583922655118363214960981423125111406313419291934205559894191766732112094768994098751674892519658874837141756505240550262520643799857275953548154382797395467278966078057990053245434140481606806721720057389842841873285576672402473011659448012640020520885057198593100594968550128427854848963741492161605137931081710202629448493916208290980398905622219591083004444614334032413533007743372258742021023582915495371159397742549058367693087334275550571657472697867210006718875555142605138010307622501151154568526750986876801263496468159604993723888569195247293960451542897210088681555973606365280569665009430312958775016202351811441248714520607556605203707441592960375357907258141674323592500144913743897964131298615658160088460317335647638128815585710292331717596824817806003809031138240477090544952434381909005873020183212552294948424299611320976528605994760166921421527076895892277884359523399329690054709565262879725153853501781141386676116575690985313821560633597141218878702349822280364303641482679887325208608039075488718739426442205359870845183768659077025519273072318681177302056822817806866300611521110699203202137585609490178749930254343802918768831954169227391443208104698503698840563282242594207838105085290396723593655713220186494440619397617127935700737286317248227413919308926757809291935191486216393225858741287378013450263698371606607684064302714405137009258885632779715834282666759397752283016799790282395780620760284481218970155229361828192885979786451454192730517745300438166848604154615622426041591451622677253911855593794492043011648743651958369715613559065671768101909969848397153780573599295862993954968989362236871669779007975326443102519690807335570342718247609999717837348010563462877483515661790241542591620728023366492393982787000234063134223299860081460616970832853977246877487002878642021189528177722549306095551685499393131035808267920393683105100564122986098287674165622536554933627857245659861578810369622077858775184480575927950890486715547474615933798620826356415540211418836052356298870986213551100058164020546602182312771308835722166265198434447234251855019126230669816474178771897873584322299190824819886037969756412205843362166415170557968417158650123195912774570587387209859110114251842698304939158654796246717328929606606902604845486379573478302853952993918787430563486004380965218769292307871776604932595051458151794891362460399112644846107095975643696351598705798442359175676377030019348720898095107311045101262135994964703611187771946940100297280418176818950143420682745132253259749845684959983044506254923113699356897082257598448773196684499390472270504753213530498789006934666033304293912191362911388903406413596649298147339163452451410119858004660288743200817994458640058666515339001985326426591675692036557300195314397203102024170948272821422037536203845259211994352534546292643912215340502784839207644321740545845896966871071031629719785772607610190673341786185185109361961707230087112227016579979433350769093283300985099838752008169265461544632342629577521109732006807965959412580886212793219588241492042920442334458027611002859271159940531610779438431735921628257660580458453029590855410314302768502384594704709724869702198447928522420206762538860380989924335680649394584691269820650290979502055111784709483974352913020581302935572980485147151267825378922123712456087607512481451045563479662617356227671604481215423650792670011744941592435556526382397377421282682153348810180506008401826194369031234711631879075786209405215995435694798267765028661365652479522370549857918087486386461539117864541151343071235032287066879066048324883626352900377913899897278861193338515119550741493964698021983091497896333162131936552642207765259217101979774172801403890425794827656104772707399095553124260092559546064860691510376634406553731658793500413400881692749603557148751933669486234643827991159461741750249249612585930636323749855608446036670895889869093574315232626232981037812853836819490628999941922893280881068298789898246319457973230660766526782901853144456630397274164774838806062159914285975197604695798270888754372664377405382781551172910355867681043163483883793127707598287432311899537888986458350969943589904067886314040661435393285778852082659691791314330502171267439361650704404854978737292330191785976160057284284572359283695027402972142098102716047908745058079224195396995204345875984099160724731784988328950707941519149200472228995519372765053785361447091271315684944043034600501993910408357140608387328699945462620150616028652180070669427790908377328345701234497801185799339167501190714185954531046877452618064577073063332274805374930093020164111939397470961970534855439166448991727816041013190174694018305036996926004859854825834350901730820831081797721378468347214685702768822222617768394114314495258722860840618813031184456520920993681848400921913201770978505232428392952450022572174150715821268446502212740134531623934242835315403579537369707068411996117833725713607333223400572437963730419984410419036513711095383187741074975350457699552881102460361668101937890563037168198227678945387652541370979874943655845868477249053345934019922263148762637295854031139999022718640741790431685877377345891759642505254259608749551819726611016378170462293785621827259919007926971770055305762811978030138753320075725444489060172058947289863272317453210574866354220692917594618182324912221979401339240942099203401501162210890002678270609985958029505796856674891642241791953221672463435404991762642006979276025039703682235946584145363266961147016641176879143095409521417433734808290451584122617768535798569752667439690741433165939963222932540127476123251553524286889703876853501379284897358523640123974295573330334232703311792356641070616994436462791753887173348260755220429304017249679345753241994560103559782536385235618992455262166235233206280377811076343184026337784771532345577621835172025544380778122424850267602814233444216275223502766256413579080659398109957399937031455892396140395060792209046154058922838287263610775660248489785357120344309970394160682959987033567637973054549972640292577069958011166155223474444995703455013370197926151597228529359415463848198243801245828331852506584080359504963299238516787338125833977452469972295665174101807440370057137200874304306488877974933637122721114949699242491258309694490363832292981933897833417553516048813786203800030313142327857669299623756787846024423885979721369620575214635764782214481903755409034572601795792293292430985604438889788357968226936109860411367197237708889248169126081119945376154305802174472659199060837065148107207919145426087070279289365583498202117021899086502776176086396384005992092693820528117920562631283255864939922360521029361615643925863456620164872558530050270677356967843723293062247939226789809640991905757812368402105272202040683199069769237000809230718904475012035137413110608129774367911870501592278021159834832599999760529392094892033463498006199790123441751925356963157877690741407246559252709156332682747210307385840064063118974969102640559411404676015646884932047383360127722128411998743653863057375801199677769331306919511352698207110844138409329699066627159684073565116322799738544938313655249672697690803602716869505826856195381028619420063519247623790294175658978476287835262394792748834841044725478188176185601678394122202619910902407506526225556946188549259364318084720945708056364521686236490618859007233271623142723057295724575471273387362218236587853599800860994496754592918492851243703008797105745493104825797222144518160034697131243210828992925690724131204734848636973852728362069017871552933045294998533063946189015392681834242387246722820455200512613017736269121127678297043241960414904411854539792664952245120767258303670243925215122201854932951807629546060822876135654875120557611867942159578466620978544756643037758616263797634935307793476919374479480031688910477879220374655613434627430225092669563780369294320017948719132387083548107556121757103092147048494225184841060610075047275369368816069717363055360781743869919590047100390985624984221301549638697594677526653662012354415236677829857597116081398760141046528401236618741739773747693071714932163485387632078543956526598379497990819322204076404119539696292551458566942812621289875054480036031502575470404990929928940842716674056250764177853336105463868720196765339136731020504465543671665302741398185520206329117135773471919036033408197956278835953321049463593154045797245639786421710572459375854564326607885794320126337816074708811952590383710510330275506390926157724954019330855055158024247863160371439887768451077201947688993642379684714346813817500301995941048486895090968198151130657908476183997123248089800438255832397098134195677522913370628038885370550507086151050502572567991705798745174865211235998708553413567219900756273875154532540870335005229795185841815222851330356152941169912787863694806072709613809465911699558548543429795982985022971998972921048474687419907622363047042093614304197175252485877501536919327360823222830761861933867478896537955677442904729666089282154313179695520361821005351647086050267620744588431404025680046517966296505808508563910794979293828270563904840356908828576481539866129719709376464277597400493138013078860058692491534969996323934036048688634658677371910504029152124628450989031064259563395391036088112436023825154216297260523245460095501382697544491432026336683664437240887505482905563192014998105363976070520034296447093109446434374444836576358548826534886949239034200688310813575978691301758081240871194135590359859271426075315998138739337674508816860724796833684241008533492801423494924442845478711715459551858862875124646191461298690608459882743504666915540804285363450703701658890581525654742757066302253993130930230376985515103735863276156601906221864361838317908590983481507606126946936403529608458639826196042938943078650109190966142503875458270520959768421143834264484300035144292661754553521354281183165730682813805704059976529538137279920119979195295844099351187974746153541452297265500117908528753102239913814176394712450294037120423749399038711582716201698850171876342170072604121325538029332904894275596206104384211826518937734865942043306506856428268010979326463112598418588367650295396950482574008574507418963137366678757054613396519590412631395559480621929966951744324385918238854866448744343028943616937658284429846364341064704496277131047779404533355559679850975290188730217548366155299444340896688932141026130565202801825516287280863902852969288229442019815668704779439955873008662909444162624526245932735327479446845510843105383261702939451798025744436114766304961085731459301563377376918344118006036423664249983191799990564098842575122699035815478475117238483648395055354969496281752606504752546422422359707689793191468726730522362643631583950823721312887836494021218166461289668951940545664088643287835190788212652900578392108122600229882305101888580735242568454984120714818361261773983632762328958096639729790396195980589742143925108568691104486051200995854988559323627225799568089124759130945109794118117638070925573884087146726104319121964948439149929230048208350188749561800835168278559938032320347614297662074514950944249441110058491094278227592202859154953041284640802685113434301551954336521875239084341306089154029503759344667220988213957357486730534837786961051416492739529409781936238550554203445814678946628620240336749632746118427526087719978452019036151789067345680897267844865599684615920496192446110777496575347374583022522712631059140212036100133073048140290177186518376570790082346111296639981770650955860984916296031842987566207241329436139806466888412184039111891085165278847133041913992748753481074321412259003842051370913108659819760367227912226128666191600428417273991889152674491636853203431654620259776716917206898317857066594499500929009347600271510261354891993277911690061822616477884350324685023626400085966741701749169810618642136889281780750062217776193673226934161664893725984255828178616603193982926701527611873603197729936101001074313296328023213643614547583236201269892563514969504844684831335008572485199028035553087305488513545153113627065473065691124343049084341310997619611205675711844591745602324702645500852531733761471968325433796961789218677833373508005644375079874134969176876947646658677487934441545331671676716187483532223345751785979730332524226708659217721846209226434728087495700023096870588464655840847469931151599238020092253349868451489065524639471321674897141052943983329087967908538793015560548514201898124417322599320273596598626602243852224990615014624090288166894185766175531729604772766600029666987252661712833306758449982082633583108108174691984947548924201405460815656735628255829091159699297884979652459831580488355949059446777283884738002987436667747772830087887873410318008370838450105716847535076350611222770029364813588707384607284567121542848503305439079563970496371375730204736775535504402334594640797781133968974740216845003897472609427685092168207718101534296290656088968746290848394226404937548849855233341694390037241870586921927583191687722844493170238194295680403838768287304038563626951879004921013032449655127479977639816983141814344854055331491722848835934953015864294563300269072166988063165708884776921261082571035366674325182275635297339916099730477215790609416142468355912404644080532938066462772306902863652932005577021142719917421255667638453627306654000967922879857998353265085577109557170085074259262478769100942898146584151326642846482535705600918096305020739281128148815136559878327835510201873825127689805045870866006127644864778452325567560972040802090825046072227424410043577044611649051235572436937140962328807453504140171843022202529822053456996481804518490538592141539817531884010946808296757237021945821343195236061810743680901489084585261913213268940500555270890256319305202765591992071435454548266968257696543039102015629133721713290986022596997714717614366138970149650589286907492606500664526621860654356422895935871757571941904204756980302998519006851528699601472281295798173070185722982917781933656812964345145321846606774081453324929535642193685714539122331433010506107709807513240548167553096614984671074649496104447693517171896858828008471232053030295742254760164766089701460126924887694620175534793647557609044214719401951599394909616289959090851159226040246042242186646123725070141499384433979623196527198664303548801847658723608410578333177593669396479662718198257086191354139779222930120948858241377059259192903762072021513579032553230080495609405399095643075518451858809334264917864037583678807496292263308789521316053568497724414059328617294925867419596412148538720500034801000690347258441413407026876087183474312940824138998700396020885978583917383898751133414213499825327740436376861214698090900880554799925939556781027104720706184170516541002001318259643783443093358596384057201967672846218041965971137743038640478171152017890230147907456850219414726810899385054036982610307267532305570592856352656301627397463495624771348681843318353078445253826893468878801836769603813714103544168524335311378864952396522163079044139720716722066232482569368642081029451287545162734689500123899148549880847283919976723327804493906432647465767243405702286982000860471594658762960275116252186547786600091955089999111084310846230106488306112034617506603199852796266460786380433734537187182289662387286517950258139290560325480685509551769097752251373797769897967930797365582140243653418474188816705768435685678776183138799678122530162735457840839772050766443368085306201900284221545862862622941536357796220031740506624185981376547897542698784551205871144180950457022604169539457236151263863475894823067064705916558751429928825538234924261098408014694275175220697924126634446284273099882444204144744354108522200692628081905230177957192782841258079491767707238512987439455576112204604206830495120174517950995059483038971060552406931884667646909965868044945022145567023563016931564270688272814651613899897195839292709595856988390105610381803150910127749636125083442569074118728228957305648412806155422452150390016380850608382144610843144702763830029106064428976369214737033897996164334440119052477864728400816611235738531477376191594476938658357247065791424121769889036949240812649544068003687485731538943018657824638131659298936915044218382974626364423851772452854551805982225855396963444353611786834397302261900349101412640683011797064691503716631498414532944906023639772851340696405479020257092814379288774755745431349163412904778474175168031804705256741155398116836407539534965858826892790055711097465476232617116893153436697089196769531101464670583404002753037912758015464212041160890079993402739130091459442267636363131924914337632346590752408567752637149060060291337763980469809458709846758505036969714333071551491431535108140306258960933593474974607583231508050984734567586279192804061378639159975834432646748735941618052054956847243842210875012107979250840517252609962404802403334078768312420565654935170147752120987588937234218806815071088911342496549596519451288444700113546433537918379884509946746122063031418426011062412319445099349497381263759712054710019217727375168774369969406712140459659248939124017122170251678443994196535552215625685520556075870204307543922320160375579636018806161790622816713028559379808223031483850613569509014048909554518006655730911631553106406200665404202006630332286132796592971178663129157420194427699864129751995009960357395132087430197343932488420843879025880876630219880650793325837331647329967576274297188394982347279875809305253559564599080458912652964046980230367534465296085876787856412576169609413832141043278477980245551518885562506450309507863651674182756422451760018383037026186034228913870607643967657378327603944371480719172983123620904881906992323910392294638623966760300133947023356567294615808990625787652192062942725921198571698361601804044667563288649734191291254422133917205853992093893299383994607948749041317606838942191777026813209593751977841922162528930360559833474021849723083500501068829538171083423371185865787995906905498809190919034544734125434490338239264914653095711790898236939544182041933284144048574926342095573999837171168330451095294594919531245843644772104134857305149754316623023497150953722188638449480191144746394553300427350471711904867525946901995351842671405604213418650851010881026584910524653496948857166456143932641948187470622008157619864342162542497801389926527949779979978399390665469688142204291764593695696367907708070516748579413562918483576405025794211248534407080173044422059075985151161330585248518754041199397597085368387127868888779203572041341906953351192406013173640057748042034278864815550479033963423881999801230914635750016828377610453510626579892277569591581206040167010413685250619287014089784970872037803559125461565289572202359701347931739550170139118673813969812251863689888269272875335663611101874162236987834224251803571924215552341297303703714000069101072227680237184779793115499525646644536987594717712693502304428746613051525590001385030640804371655001555902508215472067028424924990666862220923983812681034675113033469727593742109917429172966009648557612781116086655287747401026027528423246955674483855809486167150253430124926267105477240905611320399147405810937278326352173136037034155333856482187575939559437321284963493080423130609240928537819581193842962912190409583295066491611861886640294099237961718586357408578038479668147683720960390571033784167378995470707920942834561124762927382036634447959957663936249360603966330394366118077506409895295515787905987303647436016466945717908781681380673526214203492855412619089397606769861147384041322295027524494051016197686491538311657538575507524950145442657831452697044318326815142153475389302193277292882841513162967861757343609345248659999527833596427585594766764240360680302396846612852997749146137780415485090841185200611948209856740118751652972819881145995261461203526686089989034466955849547663811189149727567689284717999599624160896747332210343616192832771976725135803771031844111122659255601012687609656755513854353713867291336987320235292911667467673908527857589405793418882470152037290453745288686445360906188685969538439439995704996158588185996733166907836282500654962293726707932509308595444275634311043989109560569798023731455071461184607794206850459814177327968539736171191006369985535262888712561087381866695955808203434491356242922202423238153074893097198446196749286746093069802243877611208051157285266556265948823336250863480900901445242863335096954643777235000339360484753476764940145861958571797392770522679195566558607402734472836877705208039416648544759325542172465641691134433047947898922677987542702101075623877658648647610865954290227592799390129099604407120060154387341606728387291110254077310904452458399823679194987630168224478657602094186864094288060430194264266977604789927280387661567499049284220609697284875183109105749229968073674216257717679490709600257475627234703082151662565488689078003062212277958220842864147802978516470236309410590132112523897283836316152020302773699261410271625188865054066085535780885529716630240493058841108291797129325195572210286597208952195669655953154304249418236572834386958145203476229922553439675669547386922867084158164925964607842854640230094811411237033746532721769081281102513577348327641647503740649466788550355443842974531012958495452178660386103024842270599395682357202399836717787228942500087204647266747391304045455998213908886608349219090857882804677851272288846789645049271614244409305274091574378676010059615329439050459962762398243403319894995840035172432562299075318499680790206492230127155347901662477749215882438263826752898423340869755773635854333634768849360466988194904132157197527194029902379441552312940168237900514526267130089576650880895024445642856555032221374667324121797107077939433748066401250433773921195232468871305976621215054335985836336222924308750914720891395434639662154474669506147569794276678354632881654516998668344056665388069121208800772255757998044383041091811584393766555653689348969321709680768062076706530627023134215183885460150114067346053187655089538687759097726802418296068812723740184782981679547592779626578209242750758319612227147351413853340016118077667683403634555557335021039397271544531490244105282992187563847138268943579393669740657558665391591686144571197484431082548703301958063422978617836696348803571632414717102803817738669640444494715288861908265715913747791385985842171952242287246984399110903961900120075475750165696592939504280104620725013292846206925745452889269434274094439494534133957395771510316946440701788274979686075353329142076088664076758556195036601741104737460738644028691720799360486906396553815303966503721893995317930803123807691268331935010183956073706277594824626805415876103888995170568097626317978123286009862038539264656188290221021602110632218457422625669509695707142613428700398764104681713677460778529019742203005206672458106802230945416955987901414887047039932962402856335595070385059908318184060297378531656419541544911932472267096549733590056124927463949005258094065203310802094517791698690462872126912534840012763936003655183087617121664495866970646762146663046323731974160384846580461248202529430173578793498115418387357926702692152223289282559216639016841542761127768318724449571032974435577650826969655334057459691806322515068577106511319630003454841271933085496005155070581193663918519048109210286161690852048424142365759627336347745868839420965111755759266762047657775319824870278848359436523906705733259962358631557875984659034219919119092795238539020172011759412838853164569438574605360338501028142724699913565482010847927807810026815278242872552988681541850737302217306014972295710647649966033993906819165451704009677038636423381347341021511971985662856971818583028650341097602169745063088607237010547568695535154359557174748064084604293828595564610694581381747939456198590509415963088134607379384610388320314106210250679176316762209050722023330178566017603596540545452510427718439618652265641427674461197204365568436415437586704781160485002796299934865978993767121206488089829159238177469810310408717745661823713405972636538279541394255194864305634463681008520743978605870587424810001177230667629574123045363558324991216371347287383974938529339948362649154882038256488043164367132562033530015298763287188895788720956999538299191963793425500567755656745879598211475046016015839313722108570758305821433492358397095211196675235126359250538474260746104060554357290756548129775754425563845043240920205294128360206809778477704937016657390583561070810438036889202629725002532786777016698532256848012233254429396368528705664731991307629829420077218062692626318157386902336309849150019126841032771819724014860817355496434584657795811016773016956462296649219769996072855854167129034030415479545238832415694899566558343385582859655659285040715204541809771261746434845256862805563445594760395937359381987985629443304324037450873775741378601225318891123450409798058328310380327946358484225003619870673093968710481046734246664615276974370388623782469822817439381945496979229010030502272079546019863236048855866305950322241075635258551523582702554751116768077557553759627309073755328253469564846126061449899668548076842405495427239894642809881921502253002414252355956627209575696594951317720959924033016032566341778908585293239670935390284947748707247545069507459894301611965559816603663097672909174015018469168493527353905673521900112962578263019592156996636505425440727915476927384293126692438897744119346952617547955246740968016787237067907108651551161802748550720065232780411023095568918082029391882604073679405518464123433616490554078476484021745788435498468807104798087745107017363530561058611316430784422593694751467913603785167505161518016540387960972804032199407591053094333567785839647186209013532110096184773427874418280620628447663923689419487152427251559101237334711835293479118940385448581895520958693250511237443504402087800517316712593879868407892195732279725690590973198479690676045228503289235950207749225140772004557214228195229547338344403982374300812093236179096661251131319281674461385049594498013654976071534305692375396958398716904333874115516013482178338862700044840400673541304750366743983637917395254299252445729615446316763665165911293595939508606899958326976749931962221671033923243122213194706917993555276921771214954873626677516953681212771241076656676133504298554407363417140604217981172957310654371103949679264417097693802291584640480888404370813457583497281320286532139650379237550162964079636735054709722810765909151179095482337523473525596612616183914541920903602749102344625045230034100915818036123267811018585728012100988981379653714562868995758342799783249891618925170816955557905252600659788450483829340648143204527222574637507341581745390257025928750909793125661100633404742530810381236919396437570650927634883028574653174883853516924929739741997139816657746165824297109949584555121504394780520786465633495746894169163176466489149865776394785532849397906486661311338610698885293152731441016642873442963913675736787508702815700166581858683424443822423298665406894599254747286414408510529831884695183348320473984611046692256610816276146085818139888086755404437707962745270982309974999835181838947533380307266208942560277221354447629368049872921199466793503921232906767807636962468766866101717882170836024886847595198845246628586537003122836083460640065689662507103215320779353035341350148520121224961571780311394797443058150341008648158813808645262271111344593008674530595469351524958893587922613638221613988182456341874960492586238306066668063902339910363525241833618969708374575183362485172764133232419454592339657875614378100531267542318639261261009070228120701687533474010935869729500008792336790150160909899957771943282820256786369074105545977351874946803949025072191399816056518392992574183169021183031261974565299666648334339246238922803124138706653129609476892005079893378760531270338701369768626747566772601252674109844011233387079068939327041546210701233636998801305940366722754846444647148939837560365293965489691196794917655676195333026315685240899885907676570343619571235651680316226527960889237973930211829562714384708887714205825692273498075237355305451334704887444594330441547490651510338304427091293636978798502407874400066500274845862552579168298792077093647467012489971343820782042820831458952280089303522765549300728861872909604368129456561578711953218498445338602640348773928782715113066408403442439692828783021470518431734268066058609634202438057691629203179379328409418934862708935035055261356128620976625649972124374424908735937651744490073435785074425464001853697242140917540945613888400779043896063251551537229094608859119489801754188968363317356737616203843599289903279028009341370414707608473478589853300713264085598138499305313169909109741605386943516826948502736757280777938808853246763635579354407302501491978198428780662812011222838382846367530448051185736884810787679661114965072914704724298283820797162716352567668675032884332123953276381287259005620853492492317285974886931181405524945985137597590809364900189493470780512686865025205117393021111596776774018290961143662989257477499907627992537881509380115961435766349850244332911304491811010611959012102632680011106709264507632621774033983529875666138535056182914471317203936426216436362754319954439818850695565922627865295956211051980014822532515872419011591617996656675919897164340740912001393688154393248991470388918631746895141308151289971270875755081393756312428348470309154445556218663358354492891831217627075859269303908278311552173597442759670217125657269555619355013216316364567017739439826203732309231469990634761355538623993730002777177690642728527842844627266402489659797785570060965496623841633348571866296612099608464486317042958097487121528964173344337704420056028287433394322957816057249796275212424342941211204396846008366568812321169100170745183643847822602233191695376569432072993391594303962533132745123942707296128649568422782654378654097943804309469851653241776789670289522127451747153460299456891293792000873519318924258942316005958341313937689806745576317179888883090919280960646578310094206192512224770324958232138156793900768775966512831587081541007239517984543460617091280842588823569443389760841564164878690605897900215471360690794924762124224822728898536405320829543504817350021109238763384849827499150073054383315691263740981334888906933727044334446378459348663390479941875033451345843764843752993357429547146333845419305319881815434236907843455950533679701929533626493959584384859512886160242798817056903168150160312186883335302886241573234021031091827682614155867690513520853622916332727443959438363072377369929763315448719665902836942294971778503233287095874090030660766773937439165763438883032980460627387839399474236434457382172185391717567993218039462659415076003768281067719403014746462087956850027952068944194703369166414625339550115920461610475367286923303659692398657532067984439554575848823000790820881209703082896045218932777977233939680745204531058634290423512352398055491020160501257678010535569895384546332922848992326692358021403249467068282218419663283646418610935352132636865285845540366280556232412318357392609591803657180484021534455568656401041133024381250799631013528829791041446193931460709345305350003764917503363540703234435859498744746949743749384443061426779967797148267928751089514553758608324674638297742289232295471091129445956923322622670383680653057367688579006690843314653289524199360791160170570484140183604011504379560071890502265749555447467961089178992945873103947712810054272965142259736261776314186315625214136837207992346382890838452653000426631999844490325537505368483840039234813948818638373738949331345352611603952609406754162086780632009202227248205534165424218638109079880079319751972258454151881538033648106119793249330463115359639801158759418699273333306123897473698606098093141071215032143364985400326307883616197169505415049529791939089362150908713237261275689221322254953022878678218412965117140337931658865548349884871685492972600887291970571383783190681316168308125482555985092785518943848814157477299091217190035864788909070175679090956879889637483609866193547490885215502059907711576136324914088085875081002052709456957543236266925571640680444796012163401583737375314868761012003714137540098064565782907706504199299707255428184998806321918279487962509090338600248051140052378186294156590249758878257750200629415034460988814783657954316268486060907549819013047135463282249216769330958881523481470907680234255981747028876375107909123807340122624960874636095468913215140772811089713605891931653766807889952865859637901140671771228849279892746695913126123599395940573474299197431009243370251234432267237986245002185569748802593268096771589450079846811574734830440197243848168647290890061731202696876321892765117682450862786049034030706574384470848959902154386208726954320975059091152881377430171031633552598728137691811589129971121744828679098481215199789751619981353262688726177170495578877976205369357587251997268987548954031647831868882896661923960204665180348706118977183900210308343248701542363501320922874091654916500411762642385406184677711466286293541471601390167155020960509836139650340886449200803870984108882370796196604232696528253397402137468574009675020267826339155714390142451255104244374365446505988209355701953853719043572710739699763547118378527273448657634599495636386133340670414734032252322583928640497011704396279302231463059439586404460205987085176207863829794284011723877924951004137723852705762717442817488465532413755060663086209153657349971011144888940631424549368643164685033280429303216469687644301965041373868598167655347881095202625226684404861478803242055504953751539595637089795368855802121209658124201660210865895071599810343780587012275506280969722450116408022509285830508556257188531391323624969676318357897902377551646881998429204234036370831513125601178799676425563637977183140165833333392126662160647787636361615161738772950203855705598628758546805063919606560137684843169551151079541427999852248289329351249541590721690864732381317729133767635640726261613155728944026342485988511069769609511967306716305045701112973454624799026744729425286922605169847287771459952002124340091282871908333937315426839953042232935150395801875983478246891086182269643982160762955031101529363504938822191142500431546400830811082182796856261217829324824607194087675594549921368860402493483703272804730271676856449631033830996812265032477003347329984171088716701087987921533946516992053742162160197252256462260998107734546914114025701747853310742847846193014369165894578245641035292573295683797871742305359299184963747584853791805208815100073636505062465304218078676030358410517972916384166607131211682439155334390465671358727324537629344596041558984412056681396405464313431297166967776778490232116412502220299723595326823376138841764921434034003867300833708302759015230460369882100606482557759775257791885409186723327830860097644401976427287139374115609288972233834781346368437009725819576642646826683340161897097181830542793806548104911434704943532666817104994334067144908043350651268629519084884816304986377263044293414166858732202694685301130042198539997796212325127988666272124417128008779100457034786955640270996344930087058499433407243258673763842791558821420387958212203715767625771101535718343770370996378751443682647720367251359614779133998420733855969331954556675895030886514289068451575250708930968162857132697303300215154697915903064304209866534926328967555515778388052135210954246269762571642911922336262258449257563216050550165212022557567169671044019701951376225703317711118403319688395165861764217792879700462528352853833600220780117238025898740473455445014739694894369352976174434270727726536497046402269236208540035957882712284891305438731418100872677058166245394278922436732026452295597227668517860541087406642201282345876773508730960205876769425635871335437115166334672950379765754522496649573533163440441451192665524771039691137076236571626643951638081245712266434627329277381540847041187163434967442358846267277636591407652842545004706846543867166364752010794372414986262716146018026496872852632137702761003999858932247495982698518380563596355195649099262962127568345122210862449761126144821034144247491913691657334104190801066879521312541454667148854485030418845151690202332974148299345291174910059446208261229451453755189742281035641058914363127081959311751167276380979093447543965913555619520946933994053449764943923503323793053499418544542047073986714357699749709885102534026258232190668211099749795193508832997005133019042245187733875458855021401017996842702657115743882406386133308374739177988868140028830353237000221107064451085594177004971445156818297716303676982181810612089000101388567891722145204673982639544472454900161398662318149955216408358382246752664533142371058646758157827219017335549117640258531900160374252772426586756183006710249606090953453326694321961175552100419975059126838306044991677781072952993241457088851981526377188580972772589984270650984038996903560620944277832439961490538824804001844128335733099428457164416700711857589394382772721874274192167248625982435267136533264017078739323098173741453093689333575285242535645591026262877377448978673931862719451386423412111738090396349489164471288201738852511599361762926806925823218220193780658897854717568103234817448879646365596255492604631000601826484318837392799789711447358645859476216800887012596365869701745224178642592400614992384240492893996615381762397522825174954449562882222171484857728098497332698516289772630024960253116390941839556968821189322655034216590544496343724689613450640532506490517228372584453624035138181604609390949684762396364806154723250300276374809882844075354789273343597131796036273533749873816167931042534651208743433992113014365280933584653165873238008161034378931055833070193803075987319690256544382794023794656060081966333267122376535482094540186745176803678977358587318824824454109792286416711205169059847816021434500301410255371766048458447543509492956818172503060163012598983857126363008643190723794860485217070961540458914828482521407007430122629878130588552995999828695815928067959401366172540535752649947575670631896075065463679108538159727197102693610514145462594756017196950100153854392512488184697062191759770887815488118278788738248093374936943243527734573872009289119068940335579136
 
Bignum  4544297019161366309996159590797065043318010399459145627088209557343323899506844784657821009910089672287085583955571366163074591986537419841565849475162575003539030594536904251179202234339195887224273526139756850142417161248343810289176094187702125784701459657753888919601336263922498074346369683276813646760372455614504124471129041009334507261985241659231395150117270702957866264803279961232744532971041297065905666304195354139057141832817774322904053075786124684842320053690129509957456118977899444720629684952733720520624406323946099308838930283349307058098401247607186544589160257117433354633843274812881340307435342762191540202743751644169156679629577578422859422195677452245045161392615259865587083374180258748583077169130153113001802228447851407054975191585126897733831702179584659983434532060754063348852015143356399569125096296660134794231554961556101010431869271782016162070616126705169690847701504864164373205874679417458246763100691359254567661203185124465887937215244596966146378664311175063231291533032865362167816653986798980125226625414081401529082354127645296644774316151339661345405358835371895365731062200533026902424920636243365987120442071253077527040455940299120426459890042548231960371216861946495178483127463123665332261900022551416364295768855682785081400822648878872995260964575746156998837600174434728297190359326377137729212551470120029537475181813116482983235289898865194806872927909215543337046378669323983208721219751533021404270886506961801281956159002955548797595452369580826351464096391923101708792456417173186267666169735208082060560904254564968718621159952650677555427133147351584740944777571778016592730425503089426369918254746641038254276772970831570930568594136004955951874606940819490592999259492898242283090786339180060947994141836601026144430675848068422100724915106745242003863663711985695896474646657430122393840654171882471469797525208441859957644555126611905049333207226582592080802603235384249059433451086990798877274558642176226508573707696780107406797035168406824906870380451840963797653251769995645421865744989550692902758038989228239507312566765757520236862772308148461027025077758680669079944531829650092538237915408949866674447858525852776728191734460712459074536163009897153483116474900265819253351201683044496984488792236520918534761320116058319024455371632928359698823622829055365064502089444977293380297402545798875836583718018299066358154692136026806021123647642651130443750813559659898277206900579342896505037145789444391343047207247263287343786089070865930411669480136094218911971337405154710819974615880620526663283694248529513897209008769151195796952358198012248559432487996738798104893871184921593856006497937227880521765288999022405358725937530633646928304713769894186828504969571282711641561330365277843035075654985645033118782261878271834268001700658865298273612277033135921991440498383726763248724764125052695381269792775641745895588007446330209456797132284373438119129047577152590177067768909160107484448013540959154398541755310161379933386374009405913115853675637958937302984229188996647095444723510790233377538937009773006638313118173139667576892675000509560936861416878359518736620877592062396335432406455749876498362164116286797547492262886480156504531161453622497627725244796748190746870220389335414447075038893488694780165642979956467091622946333138922496300123715228476784864861531658419353679363451029870483260900862527082566613629131590760631078908838261901269518832230518983531771337438095912064425613524130976296577565444418053292308776883164482063927875678805999855551754753102995604401273834787010445391287134953724523841853671816815591876736107112061593307523644613092462664228120205358360694691547205577159328469457907943561698543615348147828547969450275043338163645494886709846342712238941465080450731472153241965582135787395896030672202449795266869183968541498876065526956837685658176322470266799410890275108604920285301280012496532066735366966151982950362100582928371303440417147053366179627340666655142948974910377459667376374721665469185278676245359231899742669084204134711799490281836348651124550594656143935151686649903356580733014999172082357784287675221874774434704778067745864540809842421217380680087155002222160646175652167363359388574050890923189835150316470089465872926895456066035592521933052143220667695849846878699957636109108684327271349059027696867202793451367725936851688374627973606043638571711327930754192196659816050831486346990641367905425587757406318908405079731173012025971522764811170017936111849503239335016234316082990822083182045815097035217399637812389098680593560886478982002529160286040943928739852211540666800032682576113085479433011359412366573475233906884145405087860908571086167094331597537304428037805280277191576476297929604555828642665892250160302743944618743257249454035241175794655568139353496791116610710184851118767334175448314563996104221284087555403594114124664099662749652167868863174117924096167339403041499294744036159969478402357132884092919337182268261760853928309915882406511131905675437666709751992198994893517661785984166817645830303213809671662088813778373459447811398182094299074158732155542079089301425346169208145756439668832451518336521441376152245839490812194675617020444626784780735549659662349483621283770884532839303733165565741262959003062833762026192004646605639325172061028140373945834068888832369609919966896862573060736210302262240190504499573598581608092799267431189998819695065349730715418182428349959240888683999820340397956728694544585493020852479603916453872036885168841148145163024322733633566492819256281488620933998400663976781427546537528226957219305731799151844257560191227242118254844960187704421903397820722723050013830880969649662247432705830152175427804768411485065477521779684094629953365098045148100524821910495823575239538797522613725427482529368133681458773892414343117830507717451435763856000150429893086554251680856572908862171838819780308409377185132288076056663446620344652175299501502762583476614984842137403284030724298271667313429184909288141071480449728273614702856220616952288533875268522689869627946955252850722566676190950503985136980803325264899200747111898811141035977535998886407038262595816656015865135652901640448517016730919149457902587416973298723727113803795551462181498766912026551297773173916915506613664779222658279258464040451634301052283381992003650630295493101323425970751883521901173150209982039896654881734172101143619440581916964855982757651602215907110650194865784667943518126716384929169031078211136803376432995039508534540955130912427924473141109468104536507013287190533420905680725226511848721580134409206746764807351297336552793604546348332430545602388390033187690825339086931477453696251095699961430084417199130563710764156683956081806208481994900897157481735941828193056101995451843758824458849342188188468631472465077195950637620048498254129299827147025809482577482253080190514593885356349995177869445663905167819631163475407409269160191645863520437728375736811651158026445158179613255204813986250188171556035339443838888370953815020814819571402688491146813736726929304648525111361632795741161025640580406740681265516526260142751327387042193899957581044564068051364204382429452273334507032523145318739849385030933546832867559894110172742172434991872185869399102394757696198716618492696151673801120307953629492100935106852983195386458346273749682931513097652832993970557681441525642999504555618926414756032431641125091403513178497752492297379629192679953138699703496744356053781170558102494024143612617925573523013849514858277111430843128867839280786402726115007081808123561477278184854324740928757486008514107650912742112086489467974402211043128525031086504222877124938882333648578196162218178044228770591224107418853329897568811360019851895791762625574311610017912698312350936704859504087234518512968654315758954753598281261927136492448334938458374216191683756155287176335799815487821190663032610884948562516073167962533890678561723764900720159445431794831288098641643093510458728840285099283790250073728300326228559321211952106911999044600602406035979353960055342944847438125445653081685796156218789665126027633581268786732910888464618978392941046335851023112290983418941943564816184967197685130769460312421659381604274979138382460713865092652377222867372060928114972465339009872643131639341158721016292538858425128565899358250897173265579012696118291044223264815579899472147027438550345738879417664210051375104905838829682686099508120361316628637425708316055673691675524776691218405478358844864217116079404641334770827903316537779363698596966582460405284460630692389811397604642543158867349111130870678528990591607416074738310212432122358230555902516820125184420893881081342272138597078783406183930621963829999637579633339644895160120915779493753318711237226225625042025204892711006418613529271284012922842148066458855255681654852888875803187787225487904957436849079350645593145642247044143980852254901531244144853465143954940045370567589032803985876080960059621961929073323888891095206117691749087539493937741667161450029203560743519255498201908321436435185325103080615768627949311132039667054157745789429185177805935356287823716294497055273407493743352720731520367863399262761619294984075064453050050411885031270012911483961879578755145819211716004310781798642508297873288757489266424837731524630578972169643159004197318960265517621172415586581341517885127057729637931057211075223103255316342353982729469578108008950724482121356105477165577674072865367248193418002182413950475176518653771514367923500396448800769934248699385294065532311410843909412566806406193874539686003313471975886983628691866197217814762460736893719549510384213941617687210075686704873527111756529809624107509157858107366884335317682107869279061519362714549954208705473267714705001668112456140398005213634760782680183604855262532002171659452083192007558908062156150222837702893329392291975281520298563916956625580079982452183933685944692970372259568021508530934171709554545102600206498866243840834264149373889182747415629450040507324340624786703935570775692540953823929005677631989413117098230164419605029694749505056376855449729523636641314007345520247517929950303870495474375354824950370235087945178208579707868240548968990409694199200237488592147366158337007353664884193329521221232686202704082245530477911506050643462084701492665814497041090089957503117577418169299579805874468511681362179861849335120068630740594243832243235924725913130189184473659729463000158570796943226429357489798746471753434977969433872855399323850870570425074192572142717194572431789090969332949254761609187015546199740947480841741497762859520205628794576012441130974489692672002312931481693366922749145844497677581447049932245705538373784692873694413159662305401780933462560229605084511707234311470387663075345825127481405951453707851727137415871454443848589713258374036837906930403995699299987371812154906691577876695473517155105475772820940528880168611179745295319497181298245032582192492580317243638149432769798307566575875888293981238392704696971447487612228568723536538746247034152582568553177465083166423809739163758721594066536091018929653622738172024899270436225598090282510639338953265512882590818915739407667723007314181579054515383358115262842385453554712382976498459757330964376853934725053029252852705109042536331465641257721158073620427771791426674947124731475826270570453749944725154573450006938577481215341949625712216747550996104816331644733956179251972947016729785151789918556779540993768165655915466252218531094972527359201628476910792299585797652572902490725019485115600320950335623052456339721130044905517538278602648288910312748820406810444569797150311506077708228142716369742417650792326566120684211977560870445049984758919235084689180394330398188626410809034439742623945687828655514372704882921509757903504851476372313449375189806924348782063389450447150842464811674223507460186193704070608274965421188590716636249688391935143097813936531405440437610881396769407814264524836732240408663517270412557635041392679252641909810597375994340656612116566927394418575961278016898530657816291417087485521588783192462710754213482836775597104171122124074757601689621490611450654784317159473299643502359198708367860473465683039010985171557719676996449144811131483150355496241407665547266675116941130573262093985631366990927282884419158765641916940166866555130914258225613998752028027565700268886187075880863198315044508187081865095317036065688486810458718427914126360224863268767708075658962168445681197933137438741625996458898530307446727301036487794540836246651922806935022661462832812272428686340036589724660794127455613422518140761966867065606526938254433966409161415672062385486126094415048142828723752821939645102432782558615399924067736384476675580273937320439888249098898478430812337083103411984135765927337358752837448018419659827340197951293980475637550253660511122595717288605145148984227437468271191242475635238168990940502800069715060879411436653789905616951101290229849499189444583801767712328229696417718493754045103312811244183815075815645809599090110407347871957412851485492102053821281800967147201218706001381454267194792972988510999387857794400695357052087579565288857806594589398472845964462269468587164183474077841004151076081080417251169111813322895318335014520746109778062673919974411600497448118925086634912497982335054241002223780910106293352839021132024740616879256936322557177644213018401529052937415908961199342392323666367390583905859642034684230341869991478516299798066176628423727155160934058357177296295925300656385336326777725092340818404417007138438471599090303915983474019045073098704907906784755289776752422111030363625141133034346225380271424705478173338704441648542822028519695890543456781843974503342878157728532416502091503948323156150562424615091589280343172461599670705875500899707877459404338901323915436682451648083374786405074368563686254321888566225367891622038598749287997227807317241513348963033142857929176054123135407871018449590373072994556670563894666315932922707592858562478091476053568315290333986317481624413904430351282859233922539061995575973270200812955548998715138310864096176300301489908540125248033095314944387875290698155134789035667667181030373710221870897600478335316949116752806626476421309983728292280635755779214326497410429331376990603705810100133650684791660233955523386102897932102448203887495766344073217743001028027215390407781793464771282930564070030272162543881286359710242535672956547243824275558446914328114225747322276052583531721615542606692140743206197619288756088266564652964692092832967131866044215413097532961030395922803626415305702172278029341901635840116275193696095948960684507700704845277896765662799027361741852803729517893474484581427177747139940038048178640051271576674400621532614174437496230772360598584612653565566988189019960976778706250316056341424536345740770798429948207371600184479347521956687660560931306401764139344236164591000866537616979674907660077552715862063099595186513016750846178698501153696503572179479805216722752704778058192758305516268601336518510655610238328195807693773691868849502101514597308209531039499908665427375809437638430689932027162742544396939503626722312716639775368129243394193052667177231922320120383428926825819286792224431455246555851100846211971368766835776848128838497145019630315168831310419575309631688729794327918576393130771937885077705578847229226677439716627921427098191563247025941215991570975100348434638789140256119059448863478989061975051967488852533605665003291979207337496973626082439483107270680712332160173094325116298787088045134397167871103388801103417515656231418839861871833749785688400637621329586725250033251904625582413007108263723200756348686354768684321687213256037412075089717959437799470106517186312335247653030047929592010607443052853933319862491726755789474701061932736087423739954455356319304318927283859562142932843326167724732886776651297417682078502366626331238778238390710422349035251260522885372657781391939862979508192781172656319377250789068993948621974273258005915718107470507387401741928139393518184855699215367248516559935530447545336137283082259007250483901043117328025262229667797119400542575102919838195506089493762813174616715279400837474996619408102429211066158262588859015480756144403940992328623216180259324714767682066789089738083313077763639341732021995713517283461493999786382788109721777321601915312918451484892019830648087767903907924793727923378527560503170671812876975655186601050863853926627952426863446900293765037747941310078845741596237217885214923064811944622564503823307138660965107318468501998848285026656774758877237966918598835976999479855979488998010366732767684973355077636639767814444868924075378726501561716132251926950332917354546179530874479629205613172602448415573756528250343853860595559306195920854516266908037051004840056170080655860171260327732490084113756454470321440590642382261878016083946021764510457099597834792319634296054975263941518384279113603272009523077359516331270029612500607537974646312084898011575394997808938862104266239315818293983455597245894498193854487477804836314707438772305264871583507995732746796373195685716191376225214470553261920763005380856634673972017994305696951678619558932251167948360780291519178266165222892528550325855952858631597507171009758479965687100218747249235884678317456671097824466977334417471264688219709273099733615902255090985593083804354611246072547308450276597523463559791624038843149753313347671215154652815277269869537858473134519833470866935297602546954506365445398412726354250106130837430287222643095714211357720973050557044503638912127511395958914253762637956389368143350584949891877736487310396241554551844360101550658737132383493434863761504029089374856370503787550539674311198782012408038828445038537922734632306774577128738207594229937677936052335377088529170275472706317699741638431567825649401359977101108345239354155780412191109392022227577271622680815336568407510528960431018003740913348464861158478151886903302160838615383760842217544311091448292640731695559806064105721975920958250564674634601360524647805663696844212634731035905193367248418063446272382053548315776872304188937611964500442109769851343184600956055199610624601968690651597157291269898390096429556660575851122445300993775809947010680448610399424285816801198308724456618393235536623048687062635565719764423697363047870129469872119149084827120663947667410030627674043646572006130182313178204876909340171644387870727949784955463740851616624562665304355635767278519372466886700344285485150222696329846076609320561124524761671968124558261785203056600811783692087862805405495611629243113299860630053010534352728665859205948357435853829953280105743388399465099137591263716383842018952763713430191571267576601450880081874266750788063347067084832903976506462759751992178898721030658084304963492544186854451236084964290921773811473131956248296927127798258055395739697254588724145079116585198270394861995631640242028866739457757621265678053855405541218976674828264833715423714832697796850357791647864403623424728524326155286583013710579068995368213325537577776059877388173467649907946143535593223812109131432690554531295539782735036006263192210329732282213805269864180950209807678832312254016286119594531908842554299394590509935475651384494866526133922730938211697404093201292410646331170485644104294082358422645595769615962946308185135333326089219284864876470209633011766513272422764168907530706748539896670670595884946248361418547714887907796557406317038488532984155696641935670158443047471160514020203800493382218418988328318891125568649026834165399064593040123134723687034692482920432317880645080126047837746639100206049600324515637880224632939101736426154584790766350256725800075359475008885095710327342609293356115010978117463403192444868024797309752788568572119338498440201354784357221429746849524784297684317205932558471083114372617392568276428976847558554779942720757377868306590361324610653314178498732010803996336784086466889150827093848873452730302324078728328488574198545855309508998340936402995088766676190423976133536275111742832231428900138813131368344683426503451934066257903634719415061714087821374115939237243979338201586034906191127473942600810381641108171815358334812642521084772372297758311016576384819508915519658104220649738220559245006141322707407737665495029066527052685689692639519943751243830617274494091905020970801054673136670278687846830802979999935282609175443223806112130293971369548797429175611487757957040392888450679963191825276849175756581778696307996783512956629732603019586100478508749654958056743180872791062653157779667683290460642973853101113676609658284654914372223153252603639960112051570507359228800705170811144991846390032514182080452520473117549618882766978521798065348740314180152748758066664229062615339527312633348772675705834858481944953688035400146240878401202272510868793509653234298834492122220402187076027748066348128849115911417217327528410560871376899294951667375833076360149620345481156925262481633549484203457953627641007664472468224875559020165767370051120379091747010910572774872255035945399834327461917121175294392839262451946374219227847595893590679968582021185526733070606983553953895765084265328477095391746853685764518872831025289191290831369085074997645490805092091930835845491149066428010353395784549463847328463909512262116703033714551304133666995880805828554026398533027040258948682682628226138556072195293525369843919994005916138493709656481159042979522915660636408869244092595453352877298651091530917423035644771019679760661280326748122950298292215139182226014730168968013561085333533731644127791628608079826727461548033002558710768795901783525245272293727839832488668939840552424612635041956974739750626601392968613479808027029912672507615708429617952569485934801920672560908453037785998285228757798741406092449466972940540995832206020402448039900642423620313144423468274874711344059206816581584512256907835165687452739546301806288787326458812207545396973888354863313541502915020313678030977869041909670860103165701113312894897305839130534004403469321812930355481955424733643781078168953603861662330694440895894327323876432111882415934637705271743778459557975918228542696285231312707834738948302617311482442892081145718261387571978307256047541890646258861425714518214408508146206013449239166087129673549799382092699473198888671864066472400258732228376896877303080888616271597317630626685727840813171906035226328486752992968712975470009481958931665020321486076339771020057761330540654819277217733169122951464121213623167191977949501375973634134390108707985103623705770129678059238106633050256368026371637482432079549620141435629524449218518851593695184058620163362945354276713098765212210555838307452580710793943205940985330428636240143284037177889756150317249930759991062622323237376112400832095450383724988182279614513634653122126958367953680024229500077715197004607266850576610134359064311370887553028877015879002502749578211815579130971790098080580331925939783894411909002030858844861351458139817841981992610711536120743321516425217574967106911509857151251218816382903171827152066643058441731542303115417613360630094664277275671959135726581312304371490001566547857868347314786268014172812136125403362491639785994602431688700450869641048254930274171657317088933794870814928110596699320648237962653300863621601880494910874449240228663915602227539205758909742776337003957103817721534095540227224951884897599151915065566448815807471708840307542255435724690000816117556270848380291935797525053526815618223597886515413183876278671737938199258285498343243032622924100116296464380550626248005236868904872609137866139671953629652983492274895928088375899338390708881951754436529146413696155077780318780970431591456567734334152068697539046539084260053980314593381208782894699663587645744695818572656258365019632976366065811722532482451010297630197489674278292006701292434420184090343883360128096365528053491936705717725934988547909662798797796217746825373928584463419245131912643769160050080959438229748157232045601253906820116901516526729538214693261202271572964492473962176078884625718510954199468162028483022377213189902670957741234914205839502160431046143978379067542299155087114290894769679925756442461343533148744620426736720777309714813161228483832758607549457411630655790401880333703303306353116786009681969598902327215079030285501550767916720393489165768323263740967053491252376491787516185955640758424777849381505822456172757919849671840229491855572832289851804761441157152321393179768481574287166829520502646219601181117717083554079914365464369635274118888208655826949783547345361471906560698240383976560686451347935269284413327474932347659685801186092253500550093042474462641472001265803338276193392286123423163938792504699322052941637398420769132113795515055718714528600896933479987310737164098957595523778945341542489529667903487786618941925998867262251421530816683233401068137950075088779842599738005839728916813031691823713139941013879932173750930789777038144229640166603805149850886959959317446235923121180697373729305334310635718809011785627235081625466149108316653662957834152952947311429951895780709524177582201353236314856242824568985250173051257453498056048033614940580913291778083203157076567870987198849161726990954194017740034129392030693171572239021929384276113159707159446341505626917571337209228277644024943361515357602550190310197272879193489607264265372832120875179862490728603020313249831149076936917378223901363969975431441878635123058721006092517125765094938898804905065612586381474088068572753486971098081888990062761285443175365119060620720870982903818777819436163367257107217845886386571224658303859448678655075406033667108445331508053140314283215040711774277551133353908088940725484127956423633081848912582231521614378947284905146685067712557495405689425466538909102797160947221208323356599470997251121772813511726227481048678769504375371105543352719580104381744564980919249378370197531251663278175364475172744638337023197535209881450401637969154735962710240861725246935677114065452393931449325655320830796878589460608736707021915546569150703603760671323957624976952800887106726243120035627514772872437487880991249920791140925783046160888979831929581335429051984898899581000914147060687170490763354890712990699023742852411570794852649677801668117801106207772072008866428756586173641365875589171863836196967909007762659426735688516833138252676758258783697473444913942516136770663575487158270256724997282069114227817052793321795042901000662250684746110831816093596286955604303500482095324452090928252661557730866053389383101211446402567419281113571132688799159014688297020679669387788788631850540543267503814901984317404408305969404059937052066226698796288986385158904291009532842859339211071021635159452820741966029198715315126854632402617034869054473431947351450460275645366664131997276451712002439568567987381398829043278313686861337040240606834035499579479269537669672511591145974122626881947828032456043421671244498177993342448536240402368574799222905266705775402101811244378295977351553894919600399766291238558504928581966948455377843299833714685083448976576103993360041177702287281615618131777790475432079266908319615819537313626837835847212017702439710777615991426557189308600715492418525833676345339695015137078597024368070653765409941534218645223267262228815821838059794329100978525654063913779854068679761480964871317713727214523109423553873927689660833599305508229923952649020917528320937132848570672839586698601474463688759407533151972653787245551967085731315676212947659852625883854348059450494485599938041422143432327927360976505073945189665989547216916116299989666368344712410894180736843865701611436591478247181169941786865714116268700672702426667275679863778049492238336428023019044064654835111958889690244051998504507886909090171944287733579097154669763558680401138150714478095581141146774867938125260723336144205391045903409292797366838627179934812408807619157740806382221836725419359424384084006261253638314691593671304083802557731283175081724522079844070961499567474307456874349638478644199848466221397420832493792088917463349744851053192790240954368399234309290663198596457879488334033595899753378972576774725969100294601252265391825104639336225115221529360855481102454867299613835965355446951834829192208626617516517871026631492400236431395909020105329684128298449396866127093068787509789337698048210385684330454542060474374518629655189801655109633416750455800575327738026138309855282762556077637568417276890995126857643414887008104517105187328211894535144819027024906294936760031499906893134492640222926676083464312562939909984269750411899106061249245818290845108624807789317523580021277209453396319121342245645225635630345664519146237424544840876663268997980101965055927189699744943405824344336614839646818545497355477589683997585966787474946721558286094899860619522312785653068566354204350013747668430687941798859567761463643712675699157770658047191427045447654396020342835773292465663931786598002272220751041702501804516916203493109607346374914199748516197743848787808014822617458130240309851592123651910602136647506757831465557763527464798952557344194949793907741166891036351845353653780943262512634473079137973408801052150179959392465152905599388260104217065029814414535055407783111601929963496745276071016004841109637604324627624344734790067802858619173490606037519336809615488239707855901945015955047364273649899242411626484493468891126367595270144585826083134918200565461213041005647954435549729822232728883070320744212758730823670584537509103601587328391664194555336950654572334223024786410923215229472195058026950694503528789948835457859661832166865217637257973130820301682471946629627230470491123111397066530509817848154513735372109228074024431092655989883543426367959712281973541250180087330862377912427229436031538306307103576625189893794139704853845232072556845602495497202303212951310336115946753709541925826745688865870683812463497225850564526104795882959836476992681583806952935885512605801156387572481733408056839734605066753928394510469104986930160680494399526142326843069003802069555154463145775628824540830498229104127784204317341071957988533647813351564507302769606198959387261721083181752726719998561708352854013607522598338101374516526406162362345823674124614639265185676023892272856133144706040931664515378340286876776984997520265250721294325849367922601557350416025564909789190556942979396069871503502098889142589732289550342592673268644549952388292926517429001916505950270490648671241803149407257416320418283538578856878248430271174100872238162716641290800885519402680390348527757417266369922033300920547599357216534171299055468778105219127706319693007788752919345378653693104341806828888994217743005732740374418841019075229671495250242825771411877197023145215315858911675044113108006212497013339677942885234278829968337651901636623600977813695173489284761699976159732312605319833858193916609087255684853412131286517926969790030101527937908912717448758865292627240087782378459608587050219030639541475249986625250201328227827247797813800631891931419709476467392463505307486689456278359547411363018754883124230580034828650476827759986925132622963878630309501831702698410575867903690490622044078750469818581392941504217856274551442996579007761808757336191358428962502630929217624843176197507577020849050297561919067541452650000475090135823372125237862611063484286589131645141839257649684503474241050681541018966215414275057806923794453861447937394106279424600688082752642614505530977176595135954511534386181469695156183644970229032347088558275836450295846381091340289171661506199682551896852421833051651824507550424199302593502572510786697448134223407098222140625303956457563985461409958440480203932072813492662079151393084739791418781571678582412238988139579261249559182552148750165023691773066411032943377250721331441371889232955307126757434975019213819149175862975070462598845290432804702252517828768055275087918318255255177926814295685127717767493825119205475455887354509810559637890834559340243092000230274253213424385312965446956562623126673556257501584405161939841090599882655873209669505859142364081952944797462678409675722669264071485430512785863565618288931577034636585098908482506443590476851395858944461500447860350609655805763650087965195321960487868916976754558186436260262293852582196721415324941587291203419975969813532186628507783755762783525878614170341605147766585927044465681215439572967786056753943629110716576493753458354530153019500668120555689245687801492136966509619804146656045512303543499114988090608301502054983300854367820447054428858274875750903311059700329805750603046216624443570890997054022876448326160152432609919542273081451999874810367000831585037604468079268449534096211720686596921876039988402525659455376517231607834454091166568625568862999805036709752840972019460300073029338736682744416603245959565742739089352184885598969685425647386053728385835019867482042505134623757527003859747179905354715231529317991626258209856788949798239505172128676189802581204607227930261163391369549472655159173157424544902030763218552549915470239627915585444829178178901706388879821612406230954767965895327954895946858129237469901259075610125935669658339381347240133096855837918284262542795143098321212681479798194685226303794058824700341606941650614798328594585168756759156180062658349872131897013011753101671186345558595432570270500386176998597447344678406315014581624829587543343458475721203241722427172949377653720888917905710246706814661401619668727033026788389508809210856909046252882540087079954981704380111811420766760476284529927467398269141998355540365877694600022431818341747252219870559181475607421267545284856471700729182171257607720822453741522202897022268802982120074354318706275731036287976861090623069242602172590619369739977631659645781653589518715429352805770223952948108621205490120302697448315728571258050295950700448643318592801477633979858840418690848705286249690439161044822804659107493108121101724168566685528282918145234622901424985418914056948270468999626207965174062665217888901745067939287418637657675327321533120810336148412300767534965792598824208005805209494631652418779531740831873480490140407492748125803762121173669375855591471826138605318242011860718220053463081205778708498891935724623350624007901066809338954633804744300983553273425862139536231933334552404292883261522664954152944855600876492288734377824587654332753374167197805465474653399974601232094104759942713645075025158537963570887958326183987145119291847295106255760041955560450570369279003637466714355821974761237095469018973637967146363262128869686707389413951963363380040501107699610761930986296312627485989883048376478451589670340758400591930233887945811163608309545210982029240368469175592369632725567335081921901353818892859898043784185928539972415108435333271180045758531114542388556436548679172312328741946223989473087630401788655054097324053044269199713274724909853210032346815971490980033209499155519168562509985577752741251910010437604341193579502214495303733880399228285768696487065672949460748009493983207209883914068746288376168063901643904465398071427822297811040086960262985911183375544221161483188144113539053841127272831518744638508522637359035703383981662521340551522798647892233243326540998640094171556426409902344901551802562783997475019313417224427631962167781329278214265862036329905202152786639676998286075275779056133007009126776081222068061811963791383967397665568605343887106546417905626155972846041930036545098112921150644241038483742792272883491087805475691684573119623215266400971191208946330996734796585265128793523791200353390564708079238447257422532032552896150864983738350756855448312258714433586599909046041372653581342803083472082018266338802485721579476471745467292357812645054711350952286435121106601881112488231759936068809547681468328428710144310334410079896454036787880388970657917667337848984175396831273778202652888757968129378181484084245233232155788184454167092539706481695205075715401025771742703727047998557683501092048796353152819237490393012817008362231713875935100946564287637044291615853479864981858793383965635549928437585431104228180062506011849234374656402391151784320091960584219745852558302777862155654835423184781141363087324482809229451683967665496585697684832618357682565205307184430638096287200006639112775550141886764433192105285713565274360310436080710463150181500383080685508442617504866455478694023609040047841622858824414812868916444204652142267160296579404634146757495551749622374028703937027355909834306284610062317691223991178563328396249185973134212512542052968484673948416972029424813524093005723332210566122307563345211530983909512836790480932050975048943635789528692890003417909707189450866979760550993672042140817774717274524054113868184804981806251751875733957854921393312063071822639271634204915479665035347655338401032238023055894604623380838661446270275774818042509979160650902960801635926775605826245707608327433768249380079896958327496814578739335489615603311330505317088536145589057249706836621172136623339383850135528193183607460178656758665167141993878286658185032109690143220740742920932404107577864107635139134334445129720051876051486742848633160303781259670607491760483874216211585128438919743073449946094068428764732867544164865616504358027571935586668619959369114691891395461178016596047034201278404582084099740899629976423358207400918834441186031491696238266970206943036512590171644248623902303140666113311988045976425496322092209328424433992011483463552184469018040133747448244841800857465225247203854681923201453748754843776810459319405851246641211454487774258668664149774129975110004740553931457270779114566498421821436963600571330757159397450093774302862914552913454847841147674583834447021588439223389926656096348310557304296721998305720130727832119699895977383125015054106347171942933397338352255981789277612650308161020138588208674459856992916582833098934760063837284363936614493923535293905029520108237983631608738471005509594719860788059256760657296609805486645129187226459372727855679621644137879665786828465632311187782034843111526509064491783383604049699221930460608682800837546369193259551559046832989553992355606743176423483045170935213070835225230587431980939559087160583721305163595589405295835047450403251262117658219860379746987571288334002448796047412769085989963261086738624742030589514166926977746535913069105694764858044023053907907782981828014003348268758538986392260660261155659859832925249061096338645294254079023642154152695879725326570500673862411174005842147068568288836681245533397143125619704893624647701250688621279953265856990407042513920079029271386464263055079111275809735214223958379067771744443364979500147564079542054240042960927691563030655282845679026808392823562982932851872851116938343559505855741320730250916455244332724423757840085753041629778198859627026482217046106543751541255133272887749806890021410822763466412472161600927382590906377249316964788867293864462188999746494154649130293630671736235423102417027006370963291209398030017601174806918381511150342116632358845411459747344245312671549984603899953882639450865659504960094855594915961524903264341452833459412039433341498619144089682546753580505071068578393438663274841938921143933974207281585291158687597163412824294824000997273524383548018438286190450137999544049593316400828194203410296581228536890660005923842494218964662608243704433327051869572744783989262885340846888404596986157875318278214751972980022420528211049552556738164917405165137498802332256784313868040907241840436003149342247985098925736163480161259535279718580286346613698192321906019035070569782452468726409370607147123249436675919300676734519400331350252288948766194197752128542564632731889036270694543603667468688829160240538446023678863001192217266729334665919390060149541590289138490299021212386205795427759998856102890174146227703348373107256542994741367779901529626407159354990204968682432762038165308716677478703579256413629605496788876769724239564551088723893821959054373860696427112839744777535383822503130006416986826449868729474386590783685388676948039509892536456431937998192118284993715276762547431586360418349074186745884209899201855480559270928107518874808435592231197432687248165645702553116693998181838226848292899104881687735705593380527763148014194911164204075386480141120114664075669460016864766930875848272734945183896462963168917510810513254667150337717805764719209847917466143862396445141474330995217024774489541928735856528394250330738208358186618017822556863518367717150996726019305586023191150807352709733241988483510979211441048224401110971363529948171379899566963956735223177418026171829946675205120644383329583264896082392651178594381994880262594407767883969792123956881944826846480568344363530751037035517680403264062851656538186869294251840812977681951793233103394920305900091332821633271139438198478003999953788644841506791802303586052094867787362574664635252055731711897688997924069134532811005616695269879877802764773944622815227639762171322960481275071771849493108099712826193928555284335389447986581433213058125530020756731369559653414400237007311520624142081842102035480832095445716036936060015411007923013976100966071304729084415513827119883606232180470263225853147106460238056351028610366634415710323318142204868237005718049984403873411079521655943380310348492777565547487201157036902116395123369666464869497908014817146309009948532665759348903428594838513100396166107265651545347920964808151491262761189332594930778028583943107674182244129513583866983406881010790647349753398571629834274061036169567311383353657683428442980335139393158176923110161809407579482613945783227395131016477564457067548001266610789287918206804340918799577598031421697655685497868997435034707836415564538764791010270629450597190520098772211142767100285404868963725909814645927738806870481655869168841769374040264128717662825555559845340564474925185800901295792044481418753566926010388569431033519352503188396773195537947885443136746576872999909359202183560233405646000812470759032613458770611242238959989513786975330361503377037519748710916776573190974131520163389046446916768787228839686552704029243689827612675846241158087350945632292351936737884253489715992659156738710210307056179298415740857564869457873302442037180675052683340646009883651130918466055667764799534152142670526926048438741286674490318199750649352526984209634608566703900320405702270061568011248095414123185435909473002712748153088882669678886602529901312032062841782427099030618442858890739919292848161589150214613890474710150292948089229021816282578312977953247351516796597092748640901764453614563192102785807640505254489426685431543432883447012890402878228690619277965040108236145597350586622140273233050720974071167544919171142958083510703203802648070688672461673412266854566486868567752957692135173757814108030049350837028783081047376720280796602699453532529950536746267058350328964281701450922699345560499591499619231853839237822846728199644934611801745816612101190627378263037082666486288229112253934497316090120896091483023197716864956712893150010863037201836059930148247791202900685409729833326340486409703318777391646140106422687047051625974938436833804590147379998163946884417218539372098808894737363494770910749322561647135004623055509944023473120734129483508122874803513141050882348940139693606119496620018562814796663395311954934313550399534788770349572596640173702276082139000755332536839016959131304743987987568429419830180198642948858692251168735763014833978735108443858108186217510488474947941523733603948569708257072317716583385494390400121255913955167700742725487120960232816791357890294958335216960460528346496393990556969172708109918104992642377927807789329780489113651997911866844045123797174422995739804785772914050145584483202980497889327203922760806281129730515879216614045836541606161406177048814195502957169074818393103036448404830745390746377590617348050673515469896725348328636498104283216915872739037963979653911605975497119703276320927987673372348765991004344801419056393473190002220181535193834412534374702806667117625666527754360273071613485720981173061073084087124796338822256591092549043601907188211808940271483574885763369109430364310312490938007173687092859913524670707826353965396834584195723410492085809464312917370635035973518440995426509595026060426296847940430542254133319086999169030862918660741618711722371061758108775785738370140750942670112186733731294896856466627791520364125272154297158446850509720592415060602366562659741605113379328774243659203451995179543061675202329324573853405544361657308834944572343015960860597479125549331776422525381975523637782623689199163967965021886342688415042985682225301202773872784000616658476545225684127093126528877445044957880955339048121037502027915748040930940345982997536813739025765188865333246835694331370121425029879708727978085093040674899755484679149221754509252685623861346201855644801191818730523849754386184684705207661502978735531573087192463817042928819325174342103260118610244723861873866036703108205665155468001487796852271385436217726810390365616729984987727036284316645277016466689754378408705918504404042496106960193866790088845057010619232940874624482747987256774497796077015834044151975392915341868765810638224931692533604185864721760151846895721697142778672602696030799106059670809405179602260526112386013681631753476050465412350916338087286155978113119278319754511041080888828945195818265663734827150837236484708875727745645771152861929608171656695444245223975622616868838557888684500005656557741625299498787738532581766176130772548427370519173395060979281630314620164200135971456686444092190740308630188797315904229698582980727888162884851852569638103966133063989874583801227137812597285572198008884787834929691513421840695397334199030412902643373474429777951517650142416354711261962011781014834291386535975865501310245147708183880884169245865698497738676491561958337647348022731384761405530550640303326841328598225475187616784040727755988731913582718851326547438631021033358568415453004798894430866238505961488309424955809085105228423192479829239651142894775593776285217016688208875602368572114418827972218793439372389871386234306520679345019794391588351366762721342068815621877267277850294894493552174335150645198673310784108213635691547493242898943633236976560157768019248613568348425045358866673140415501917963118338955344049788480457200947137879657265103413270883387321015249875578744876481327695686033347515357209831295213269766091279552887995978917721449443778958588359056095878268857348521370319630573759946225243256033440625484594596570658946581637416578122538934838276631861785002093855711961173544051615443275548046123220196619642391588713900547038887324134270135188348815847812787588228608740062778344080279964078653742156509870900167656156407638583934448677119938140053509564330036992365622252917949182770191438282117785869256482102276706001859001222316980644709843862095999628190464469678997326251386758952746900211688064550737240529143245918157131408046649968170753093977761225727147152570953123013883350810272925322500918075860436233695594850821131354277164636250271273937153191033342953373267886324209896186810223886657183494915450939503437432204185946793901215531908177699281449654027991889065888556793360502861124378829366705627710044589233903298458540609940979181053136103108036333390806096589939621775392548881426126912930193748696021123123900168765334798889920111386984904843113232672905195906912005322828701589776495551272157837201560270670072522088039289179275820488091454599704467604584867958301160307611096046145540858306023883174571889795326230284316671196361361923958840372301223000646259448748439782625461078087737376328843748043401415007726931491764134250642327871845243025731819786900176465192909529458890941198670914620850901986842296765341028660209883670150109451828811774714016789924386745538620227315309931871983584398115692253863324019068102242903172084443554731441705729758651620149658619732681196742664824414444305766990660386565855552169590638553744528317342820345854311219050605855702624548643028952898180093128248405138938531174061458414169903579573587648191653217308336839149293138518030384008741190830166069036101410277742204141313593716707878692941971217487218528485682133254893962989214979637384514207621191376751386798364264123088911630701184738286602257376884800481369283043672706675914326062742705831355351173081828690780862385794147502009962559517698791266927411258211302495124438309849755141191579452745834922878827672609476190662691424025912018399794263896737402641018476496162445034007419094681904025300516487223872276677701925720835781983209839788819426565060275307510817833276411792075718660875095778861205181365622567147996337526298133431052296637429771111740096950393911275196121226958108858872889567609643231769312409106189874754350486001326832244773768572441631116291898980839913795921830216031484523015680193872293651822780513062178329972778243981143662821130945861833382412781752533558754596704178595271501840136853062261537092824780620510436331995560824970598754212379090320280332404420389829948154307117845579709547283839989181647892035559696722518962549099370443745379171846346718024646158131366149875309153496333528674040424126875228234325557909993366775133373729554478872441948142864128080198109623923904404597781027562375019998462496198231141703393195763001424212566225130107614637441491164013167911820247619873920725709716224579971980178947320679851564002847926018514600609058225417312415490643444833129590502402130889683655505925850653693500768479434795164018326531352768590660551497519079593891549516154802539628440498996760115922201288911596146270767604233233744707944435409467700533056762165255516704813353841314172897750716684964262736812378369139964938613158634355333940677690177101344980255255165351023693520734500402544792119832393000814884129817130283187806979106114259391381871483040436883251854884821317001874577289958382209185735791513863468471514909606686898901759068347291480941545875649318488271099032529203981316547204269944126956583121040370921561757868648207241424586425147821286658695442870007668058876724068458017701651154598117158357271750087484185661371187684509415023261301380425579808168792802946895878989069921243461646664492327046745334880058081653889469904467997835469739281878751335994261916608306469710467941565896191613214950574864778983384918598455497128539062614333583378946998190018014511901135373266894785912461427524550554814123519163757319860316856914759715176522594835558036001880768201608952494075142965501070319010490062428434244666549759670393329637373768533252923519898912846561633150524871794320836666227432826737461763253991358312936885967443780635799564772130665595369473885473631662056661302840459214913027535982169134541009017497418362947380093796522405342296370364713502456582676368455082657557293370221098483983489546033412473128643809078648143267698780555668195395639781277193167134079818221372610232139621764548124310843150649832899253126591650575318835977625005509343341944580365729470118296774363263126190866969449680648807370077911619607796168212687507151722348506121190750841752935449270613334190073348755939487643481367751783685317537982109858090947109544846648487288529254685107549402140845492073032189149673705634357303314723031450432565280055530373146618609352861052432627620181795765522159055434517124439999134865587349002909778368674486294390965730517049410047483460252599878947772273638655420213666343401322963351241622390449499341271672856640783258690661501254560754741478992031502183221486120888069349035383003209199066012193627268894550701384225866066972976328507831002999639671401037306376525976180689862902031292515591033999978025981995891135982506266911354992090369066182215953817542127526771014699361417218065273590160224613824172316467650788543405573906337762757469987121333333542941060927529107227804112203125159235997124443880966160748652199558093953703895439112000511465556982444477712405877078741211430302843847659093304883001020954734193720422834952430742461010167328740559472308724364688306324373737707918145096066805024629158444712939985611625590639471988788212429008600675263673432422498705184128824762269997695342654424716180237316195649633394032614739199898500082810356295349948495213138337670537568790630125470058393428212665937604287473549800050482771966185985864416366876330543042330822965226530289474653401336266175940165418915116291973671359759153824109839999045408566677057400062464027598176060931429738210180917405435529894407453297032629125433343260519843148313557898051658476778412969466906197865277374000261117408957692219214425784916090697539946608739923211796661308678289245926060097284788791537211907910118820768424492069172807240128717758437177997476841923332439922498061307068670138228721363307945394400096923606784640939099813023419453909643109932591900214413314752025512505150527719926391905012364146137010798823109550913775406141222374786087321384870800972249167280950972031524352358995925268610701334040834288195447258163289284143261985271849493447996451805032834135154925104753922707977559891397523738711997879062449222395477709178909029163437740847601743160667846512495993153019652756565244050994533426656451682679053259930564991659521973004070692882980144648508205551947896931370144736051634341080434796627053316291223009804014560712693706449654075356739051443463902389071531313185188929910178939120930804218638221317504006067125650543909882566179301555585341647585517692880654530225972468711514686341680690827013283904917894289068786792761185007636487840450723742224144404100150402530495298241605582421757330608062797466073868395195415124460722302280626857785330002576305613372471596472259076308572448925262337276436641002564645841150779922419849575386863519047432951561409552999960235860249827124662913386686933701181597808797865672935259475711196237374694440590425586482885021641864271071042128270358905149014164433474409304052269049690991897375392028848831815680073075952178081323810288420593240827530049948302624360259102409849122033893155930952143023576903810403005463705587579700592217890540185801514812336154814569739855963282016769185078294754656800708276573930690693824484282175326451085417127663697790035400597359814160613463153488234712552754688791456157958439331765093481104412690523998888876098433342410303006214358086180542269494744056156850703548130353097222642763585430966730949432300010145551520386416940195439470430121253707254509493098898925230193848528662729727526758843325742606240037874649692856571460795625015731510278748355748296149946904553307534122945237893348752120017291667842839785009784216907513932856611952939494807298457695064532030221425909387403180637537089178417167580809442702684044157761828016638502532692770492078948626766632909163111480195116548879165305884826725196056389767219551680743495270761155375348530425026476024232038722489438617592226694472725434689819485069677122735554286884398242805278843377831508891331811699249071416548258847189274825039859663455216125430133127011107716405239592254182033422031964525159648869080160441354993572672202483650186131341502429437455031917552455928968997571268632478746673774661359832816245431711678199586657465708095762445188039685368895651931965404519564563942696275955149060666261191223638053470820275508369324882065047904691307122784650129477543757421819709510719703654761386425651255338831253925140783960278701440901626310564376446979189049245350387888571448889908872652687619682654835368848495758483121177038924777855586082316783299706404261000820490739925969273798972007788592851808204619481982385632647659084617624115825542976524618196140353604772336953705752857319990207172662775272185360632249206140873442258618978690519648236421176582702964241972601031523605985571449564649059410357763604691516140803761274847322729744061312893873056442120088681734067766546825096316992499822578075935059921793406150119410888633413273802089318863296844147596247458250067039149006105922527607050169155719371499080606573419101383652462612013767077758980307593534004725379047884077008433521787696525035362495895636639307630809906314340702429539845817803126886312260853513040066971814380736383792346018022244023014199243757030026926198561725180061968132248309082328042466190963610402471501696264287232034599752137652148012822209721535007215359256271211089756841411584628537016939202679504722499318214218364436246726878424694932727530342900640580369777469217101367057536395819330903104750402227684322285482410544844954963931563262720629753872647961787042500066180655753620081763069741247631835895068250720988246629013237047563108109259055420983042317077577052171399903556102999150941550043905232585152627701755472882041562546129061583694796033205331146341947445402858764331618332660613246155719556495314606587409734422986515120634718860001997707178380876036159692534143653616552318894986885922504192658983739699208544927591181857104311935624184592956534368965820745230093624171826803554761851950310134223487885961114025993760058711919336525809837910805410606370508456799678213301285642025739159178833837473738839742977568945755185188647325477217804899405011280089725149914160459829417534422839463345295270812579061560415901359222356199742584240342567314581207554823204764191758788399168558095331459540201391383104228317227815008058180617776289324026123053738181994435802684237584688653746572587149952043630086140441069614279674701055457897735591128202784364261768083013581610582437158842954221678973749743192715619943254969216852802974881030365104485591276963380119540206586986079915988432773848262513480800489824436983340486743015267593562239510180743958140040370845227321202324806405274608090671484832330036567144897980322680163331589548015422456481985919536950972188930137028768125511044656900759153000614509290996743020634288264934470380480732102043170401601745897993296509513218030895539779123775801277251235398186187866498930295477873076051922917652047924032242529388803615062331676744168470483272304776267459774611004752576101808956199559214898705154856686682884031702846823969379491480634448941484432093690193010865818451890753781250496572160221969029880388519244733090774835781285156144654082053298565611803998885887820722384211319989056917145753126338018964660796578360407705197313954799913191492454799749725039331686330857117439445991653768925575941546486733666070971527882990220623414358376325394669440656549896041452731295147992772461333356255028767962777301485394717441845642642316471039555535599206447634203693706114443436321919709317634389756437049449512045754376232622747753562186575344369373774373157065797141891884936316593021694963004545130632085491568538507711559346481943289895821297143697964213902000093278381483358241062309046478161773107013054670829897092072777318592095621967707445914334283288832590565738026984669904252391261890382539974519797121208655893624704801898880306526716001730415655826090840683710994150292434474382021948307910225833148570191326463773702654985503940151543347689263122288976726068806849663545790942411995453379476639930284099924661503963238804343671006376331085319492185767045217350164636980057204438404713120092560462109429297798555289585724117544431507777336684183905606945049427509552444560421561136865461917581339714976681958007885433892838071537039160340355092533195902125198460554190138794690227683255007584391933576069986166664296912460939143047504356920907269369888711360944174383646163075750821177504787307663019276165461156081372217584503082086017235197834507100269970766323774700374416739797206870022842263596669018679858758782577403102817036844695064689645165025678450870416699372276712198679193672038154912450824153460614225491772760259655236110924158166621204355794038513840823057409709556257045332610575739257283539487866703559728761336097344989150009063402825375457009582764207711215386887497716887631003112006667015393736359173177333549095311760053945853411968817288399597039180089630948637330215535305686317901886184545099472023823358312392910310276193810440645751909181245694485179885641896500895445184529451076006984536928418877935533080578563756263756693745792836936181913574905242331425108148471978712348018637196465184102358514396820647054549467358585379888943544822071382303552236246607920817430716877666359753489812047986206767419357327698773427477480841309296071967685442710220478706360382702157397937388316375411198819675053566921118937286676473016277076314437449447669206782348599804198466768554170284275645400636859833134859733222088574491381662514280711252837012699823515777972828107582742833264805576911633540749274650598431550100523467508333854216123882810842545449883706905503279735967966460713093095922307783288648417627081659648249938834499591189095539287261515042716202028948334713376189361089831405385995778842432453119815680314033134039409725120803327117366496668315415260121989411775529056081014486182959335816255099392165652474266028563957543569596276930066191631806453412087877699151227085446263187285374542033943669813782583600144890872732998336185558721300095104275950708359540752211042074128172868958191933490311375049729327074643231900490148918259443582288485125189113663301838601972862654791204322466213884535025040696665979750105050412525633888015755211993901399097447059728129921927312270705357023155477508783349503492170956510042229139978898580067259680972136914859712301654965244669510870833672607929536171832816944298308987618470342908122304661527329092322733996287751280244747595182425534560560898220316584303840434200134888393278319997689181440570483766486038416073200388458235366365425728802941121746838183937764174754459147078979403103065540634907428950632349665973743646748674866330922843522985739692509947509830308325406907970496563436064865231488093145575217738795630741436382211813786040798691055177082356756850126642746351750643939240707346281007301242964395481106074520105842779442304717827380546154225645868192271711711835378674881866856439553402647962759947800164816680904125423801167594295079749798563198165748874759782889292733038138762331391905925285426284936969127065078227439468898379108101349402215819843461359578568280573441608852487467793914297966913589990666218657268420726350329467732050738055546408073358275257225427333342812123739410781042214969051309388967120998757192797874604751256613793699542200041608909599635459222351555720485938631831682942816458625179790760132821632360384557880053994052023843956804185637943631536140141109723550458843266243374233491178738052792670246479102812924569867654889259039362293311923287840523885999573389652429356894732278100916628359179521072019571859166877900168536278822016863142972030317516044230273967055700982706248624874242079801582185306264374370278772588048627808328431415597335537702841323397716500506673964132720246022085009187894253174429016371164290850575577294918503979872444343149207848531924887854892126737800454062325090376957924979186163097837900702621599956125394853604518298550146515767197043917138802067642587842056894344138395669763944679815390618643297093582644229623752776998568022964585582936482114228444475231792872982041328042952661766713433849187608208839653846342380374561994552572019263437035514808651680282107846397481248479766724187505836956749236790126101135955627760774362555386402244443016830493046680784008112597318034285652134407519073133886486785676260084293140610729627379117508045862265589895343845640888677394409352810673311578354093608507017697190906425880657399461782823511023297101147766401012610857960460537252905904765471379457116694927002199665787174628241351027848575404514685561237997332025558625337408452431007474034363783349354066915221319525052977368675613109533634981951011560588826760228702601591230896624836799145496243084644450921821466783397680306559003301276178137796001710294833937921849411859824230245243900313204663077887771262294224806693512787596247887410298818595072092933747627310739629833086923977670962188002966562958305628687019644911379443852117426355925834497694831970630236437293963345938054187252209137102841326973764668720031473308471549722039183434727421880237022319071176676228832426455341144648638811339956608888007671995233293524446968099570462265907843558478171307561657436171918247701261267326982984379960263848757350305390427237852501553140649769811472889032291626611110990796886124857062957028355516408123087889069484867021057214386371801160724553110457574272161578848562025762405332611613847906226979857456050193491617539904462180155525843988874438455241628748692761830446916681743739561763352670888682259689556772583163243371478146117331520084536675738315624051960022908541909324444965125366083911268649955937753061723976344593870824445763316262595534374962727029202148393696482014732583842982639308480162473139299132849628878240734302076683753065874270936222183044889372493443876852722973912255379851876930670668145565086798693090145554493539398115541006992014408138374226905792855244590061162243375151380986205375230818298210404365625529209185468036430381040931951283016126603923217753059338456499727146596764678954000481683233013330355315702229417281704800236445792247573009612782101020500666240303007270848448548867575761401529192154463938447951167212359187790839906499013917556787359963718152544975253985299195659649061593588158107952294217300331903527401028388934612400881867056534168588818098883298226411800173517254783675739373720761530415071541609306993632642651313071143287905171325653151246849232614563954009872086025786058795653755974806961168479086819338790783425334930312903404568886175547470909206003744756529395518832823772391449418308198920211942851803092887833565486927006518525738821530311744576872661591643223512762556231971437329572440286570049270549607682393491729239405230566498125065921147876480105836430397266594245014019416129990760247259377472300668651140786480741935586549076180072860123408298980443801287331610505564178136608719994567998564760650835411274117426287786136161100914426256889260849170549248691702540346590836637377440684448974253552340735802164937053086891015198117674716713577706327273720365884114959014272080541178363909175518540978583874526034692177757036687877080002513278310619555206152275441215023459030100687602900930701657380669445771069180502802581076411474926841529114276502008390050052507144268238809582426977538508681313936438316815463705885882332601587183281611226862182800162063793422192957588309889591434347173669256674006437924500107372812629347715461430960459702014527382403985776937388279533069758433856202625688226300109672119263841976060741030442622081511601833851657476355546084991048751229071820544529167528265165126692163162019962488037094817432493459247691249783554429308474098638115124976706948172566122652746959814824084385858737412986792183771747422941631743640052587000018697195152267029719622308384375644043618505612886564520498122375084457526863290562784437306025153674375255171145172243646429177839585113360043301725783707688045508640001499527498033057148750555900451907605098112086554015569943434324200796933972443485088204598985051067589706999704782473012461961058595139209195546612128586185480645604417343793399471289393524091271734330277680681790447453330803805168694291750070368966593202081708940837333124579719086208682033301828388725052158984449285669212377705783462721485580674641222525068543728510770277055835804889177318284229158614924647306341656145820347487813517290082928591218518833291389816147342205187258352374142904058849421551989206154435521541664765109281286218407826674028822723379961835214542609526222971163772441694629209659152945216114301565842554798335003401982674230701990459547361820251067867537824277407895677789538080431880792931666010093626644665757884319619142507011761799014809403975179558248388003138484357745275132236070060588722993159050091919112373747571983438226209786491137242822838207365002851697807068809001738738547598616639023697990523336080980049832470333621365343744217986664282576953108089049078479395586287025464157865113488691958781600627519594841538771206086006779573432310842391926152242686236478242360955499619706592554103925980600053038002478618796302765646235537536452868862131924633254679956531288913461318256158855653077780994605398909818272933808485391197792174900511794182307180671041388408777268163762347088115059519421961579606380023007369296064802900362402955691926620998098923852569869755891655071434062771444143724319946700123596825726737669886770431554661201156829354135114343795667156244384126346912998141723412217329386149968155743287698487896266063592116642373304195177774025917629685344279729884377428431317212779912955563494693314065635148743353137387725920929640676914389352231192008937260449206505289708162982284988649999916191305013391541039320076346925877762025417073338517826209385649462280773741347056559434865535312894672755135874610162104305452435124700871000786701869190783052424009670396115107485570022063181528566023878325007026358537911550651379204494211446647720223209997030521192494863690195836784544206344887683665968287863699988711045929934167940306541840624668458094329333289981043198245782377674849044063797631424703441001739948247279996026903226987608936922489992813672269432773300448424272069462084147488461241772183440989558945174774044937584638628886551572356665686373332181465825829376258689284397597869740114937718692970461433556755947002419263583901105075606830368161151132653924128265426023255265431142948117341012532415070129292495225021598368738302273448001648775302791000521193156079474005396894585020909986096044414622587793036392384787105781048455453749252994696865253190718886979222353211909312988224857810100037349807901767786625277432467934349083060982030875818515909163934871372425021374525814311569218225949563314520403250460937885392607117362248608133212648272281741556802173854045489170386366173662943783853394495481493576290894618770667274897429191804809045040129863215697384754498690214227672406295087658308616501674474317717053286137979864291508819145011800527573771157298321377886384249184388522352723198546402791279460669916713600040367927464902205837494423309935462662677893913308900371869369398332817521634610222170824917872764906775246205478662344555495670898124238296054153191068341958250313182376031356074866003190089134784470056385587687032409044993303960749269957753533627760513854255215193895355496332594107677072473140532213805087353390200213873594741382582793993952965546102341094195666593253090086833314285525550621609000045663080081508013752749555494656041574945326867824080708497087359864923112598733185510786815754478199053346310203630461921038791878014366387313533358862872072012030853279220730149629925334918629854613746081659069037535090544403675536565797927414775633932647859650486696283837604762222783530218080597776262758324885760198581681067286601431346350570762349500878978878599152625610945307647473608340040104325197663146119129992173519598514459041781141506578930387031708356321461334367874661869322510835543038904492318773470881471082805940911792495598574420263551648898547936078202098728591123007608581489926600087685770299456088070376772864060318383814994088667705108184459405153018008347632339712245318252406268183327822913399514197972466296515369875390520680832520157141148299462026020918416285280305166529645497601756620505277825713082302697384382510482972366218895962600423453832656407864912054131501761719259983011532199444410462816184861534393612157794120030234397762159632416940433202993248148151443856333156478821542354472479278495505953698957987967304929080977780892277953932876512321043167732535780359046606408944632006776408521781106494227139147727976471051945418068057450197847739634891905354385813213772221184962940725704045729423178300112507614430215597226476871933221247176647788690138352416179563352653814196272400772488075240394280391192841117049956136297048540650614559586425668946236943706960450349084777353206290811124701048121724144616962287239378570029881335422921558129031934380611079926650617710735452940304784435503045415833728253122647036851280886476101493984126101275178452338045356768204357905720398585201473592067174158416139814585896956373187028758412186253150808489004928232600294557632787118510644003793717446257922414297412420515901834509875618060801605219533269178216008160587560240875353581980005169022147223491953490764060978881292266710160768073487569076974124310797159438065281594056772862272714831030661336022769758290845189243589366915077086920417579981256451246010273315055945786617928404385334831839320079241477127300475661088299561999034640817673892917272919323290181388646112065508360281438687800294573640954847734016166279924384352376937098158992604183393303132152140815753166133773147128943665315396450319027944152093826673558479912462508380177713249503962746811754534980022198592267710506187036555231024499317388362882763107003340939670080101822938499464408697589175628907300173545114151373091631295849780084542498574446994429523414873336917600732634138895307624500805135847269908100829837402207799678805073729714172739410439854244132828085230297415809855711584448347758948420479049014338531886542812999843550793165652494602425709705458178075979163919670626871480250033733960415359165569198289682180836968003816392977238071792080245340109439707640414332291861961017783572764300069115787506474122241107810133401112751862895939484669510114362592446343854891283472862130373323624428498556356481699093828026223045574593419116026115897229647053208851416261810627321525512861445358478083125152223321776124608007400442812556926300766997653858687944389596182386787177123336130473050539625521974945350150264605293741374153228926434463964472486599411323194791337707067597989940259756150451972436403452837412770829658448392207950343699141668452359710535894485027363206568090114907557083741595556095112257363525876664212004792783075498789080140133076901291818382668076713649580986857958153715903918756901925792417572192439946504243328416308136063118113990403692081034767241370366501950402637372766592863107133002286045414801854664231393642848886588031065475936433264921490502700145009411668203210734258808078094452168912876329318792986845733612132347459364727583668242084053272264119007534001602823375381422381789511952518125921432966066722911914703100220286919125955473295857956026180800764236652854262403248364719573220066898410173682910186939024811097847928767356140872097858966948951826956349985839170400391088872092758258894323798433943761015460514412488735641391149825422081741319993189470516702350810068891405468571812823896235509504953082853586490030233195353886382150563150933813026701765762598090096128728543308852790011175724640718764492719344685294184018954412877790350255584078338356345445213993584897387525369654041157394149890119410448794001529947843566887314786208067573835436898592342958861439053158835639428063500837351044602721277284002088198644923647850815360725254507100123867514345433195461364565961932702501491665757667806524266644438198371995638241162357660982625793360236242671088350137996318119925192792562117974306779831954036746087649749479360314702177242052917634879538140636099869170781127925130398316622596489469891692218208532288086858779232517450046708751898743399476401682615234379302771253716502623797095948507251746002430255823224979185887773788584551305520131018679230888147664070715624822800295915513418908652833317963916262336557295400420072044746786451238126525437374594815349236241890203265170171000208679014821467651245551595408673926680613388156043343787837368859154996270730546733711263367486287832735134746344687142686019705153107247824836538991788436530289427464945734206071786209433846086498223750687329957862777561160371091577571786469104277351873071923764408861404114629775657109977404176446069663821109531615224482286912941917235590447587493671310096164572785106404655362505520976631183398561658518798460731803893219339643092545691871593126316823563801673284853238869568568502784332544403691604950177532044321467713210946836011218433227292199747465448218251407437781131212747061194036426538456274087663148385120037271252927341538434509470426940778131209623503731518120080046248926724367091698452755847571607464737843007436759672065150904575479632390332819456407690433051490478502340142993343658731191158287884629961040127714303414599502188397711431864181586015622909614649443077081656541422290013468793809394504574172574036743846510816491238503122659281315104495996435188970787700055009899496572404067307260007805365039626703972564514848633573138360664105190595620257395818171417733383472645801080452858912645629673443279331651196899054663698607642049727385695080361398806574243431780357756771854489514262362659193074656509822530696482732302674556463488917016563747132795966170012792580636875941946325324302055301685897763848041945462970146287797595962931418938708860877634786012266597556168764779115125024278444259935791799320241891660333645333174834793507316531713816390760424441140009267292972824828250396398056754469136042737185696791184291181753130005625822364214791501681609843679013331516855882956939983559917838026784393143476384607955520588043130806076169264044385278204161123650446196693925674023075878677500442880658007607352686971887073427379349373738326986868928922220087187894719832216654693073334453226897360296894320532055207709934797127499746885036006431943961270261778417829241557858576360862553385212450781841430160107903952962587038382941920337778291058125819483209789784158578817914617615101994647254807885759474786228585914349696162591037366998479505813357891304573344632477997277693821815362583363665765945803314931232026756709013090560668478187674889973156074011390076090888975448994197600633298567107054754266170706308120895573369496969706662553273999040838820202138346860276817725141668609898296865295387995644041467777370707592613581986591219652312233774991632759188913603260391281169343691600736693500262316760691946943840151651064121304549114700243164420681645281202688808081432217857936041220031776473436643555808804199807696150635595867657132436513440411781094028639942430384819065186115140328952894705153987973066455339218724907339066838346070089649663317081529246268760548597801924947444151083546257210082214017555440750792440441850558286016976919375136078336211335484697081182820355116134144789070206806047241815819598740396924072397877930123569950081916359205509747573320907080787359827911864491840220290519632191960947844906528829908169495519255653241366970675335763868651917305060291739233953894344197812843753378283305578756110203699977277819033818369957068361821334879751960093491652731537620897391897553871293951805462826804754455420248069905656716435113654389017445863406662718594220795224725768283347478498417147875149195605375939424107150332067803546246701063364561905824269833733586155069577094966072337477064065350614702442675494691176392447526110171701705709378651304457104676948657781299834239916233271281848825483016459102242905224631838434620461152204595493359254972644242669061582828729309246725153162723517644269149537199239490330157518920400423216277322928005866034349694298322989658877758083920907660791879821747279288938225201941589960222256037304598749891451183686685187667099438788845063847649118929605110564557513538794135399286093028357579196916575096135115547838058086581415287228572223260763714323275367415119576436491382819375992293933744089891215271660162516419793119458316941828239384828762996187274235596961925275157984737024147773796890758485677164041894375283147346877672201893251120126125792715513307032513649453618410494886138664904542699683879038454679627388010472394592943295014261258728246969490165067809200310664583205247653740860544827051657120000862760625097827627735692604520743109981993461185783923752739287799405081982658722814669966518464348265830003476548665270136721938703817145686824069374649412268795564227151334920665889605147832327715882707717075548982758486606733229593115534853504589797081242841620850870282108504070392585574817112482012569946984591533642041985309284764688164046254686593809645934932029297763280337752668891906665766009464197980343653362682827349794150131008954942934127938536341503506131708994049390376616892970155110289608418108181230809247586717814316211360585340529301262922862962417720437218094110981049209623718557962241745298675569261472398736462928295663308977787989483402103011070823729992026133931975841773352263923777430880311906873028793856081345132459386130160737584485331098681280857082364401667272655598357474126561641247123289174272171240822311067760780218151152863758539361557401971168411936231376612504629436408013619947159117263578721758432027574238928580784911564383223566554388520212860320475551605699288834656363725167368186460121193406721332440779292060024559988302865813840634101835722117149506875099697893926349464682469080205421920471393914495838920844840469100149197829201098867293249906865830497051811886640100774185797144478734669922173600387470226027019537255026869594085723226139853382343707767497042066459345213740983274170970475183064969726260488969554924317545505165938550836114527322352717221666212578378219077036340697496060426189606741369171726421414213734957743970987963022510954225946062425713942401539558156871358096628497464395276209522315240740396984738284304952491583236263194604521222536359055993290351281638219533785249568260577327044983645401271811646942393743422221335321645394955634031982937408652521386845111087415990160004782663155455066122418403521065568437689820268095663949907373706404857120866409618827136140025334105538856463385967805450077132566337075821551898858003101808716469317265253558198820826576153096055933429143409361887351103745998226554385452178142071758949894465909679075515468575129176429861465508139245203227886907175241899223095126002154892931692213508563167690972303989623657103735921258754547168478297678770404399730479496978950125237507841021828064286361077123879262418574523657350607282761197026522940168322899398981471560432581002656497506394502272195624031387748536288883399870924612357840455029941089172642092263778901365397499385348143488167697681653915874048659078027423871156956821617194809496895885823981350100933953771375747986523286924442779075635403925657535558421087856146057566454453695710254717823888557928212754665389933369939205339511239382971468806617064040587821921695840308506891854079026509671806488707398518104800995820557192064977161801295861169267128312863352264539460971487021662784379176004107701575465371121503946484319046592897858445873613916548918139699083845704974748958357569172904052365117586892814778272221069127041713924797891565303916763376458594519943248829047314473144299603816212903668803711846553928984311809129265181510445905194319575995203341177261838273998077599100067746590990459386693990959914550982838540449221590211629572763625212592543840949197145467558485973726771987194187044907002096040566757750671916003829100771600474536044612589652923182410330236680142881642990443260215021118029971080287418326322092672780326368030711419978220777170711383938781159786531341562587184548923874661189815972692806819796075861222282316620133393868797588362238235843147063675730063305227304011105407252433478452992684134783259582313021045232696139905008967557483374476346472290547230823837048570996691657074972151327552510586057218267173765448238039581580875413939214158035901539740539578497027636152209740845251119614969788140646327294396162815041196878965613245459893854283359153932508713087065711564064252807037778744908402289911123040467432842853460830939850003084528777607374877971932765519075627287937968845887189322932263268960943675055470515380809395580941136468804123977984005871981036157338424299600359846044192851176165175196848402349397423323413583658899696042807519447246382528330938138830927928040334285353131837202591889368708934928090732627605321835109528120409806106312768712524706047298537928198652638641367320123221145010779059983931706946448018445740851184495457610392184506513084986599974917968790948375026503706061212089573989163652279812872415822129570852632366221779699214425808146491958699884862100045227262018309901160738508234745207228911953903232485058876697447047273190501362409517922875064659441311357403686347632191510186740867973230943106092123206987486489963672756033215730425080221422719105646959786473689312118926347586026311486342410511606150504484430924418602775025910367335924741090023131002643672982904343135733741903784000891202824461431220217522105430898492419966751974589501202056979524926458276113111038524258476636901841909558800219756569446775271949258329006558654375775885713619379332342028948607948344282839793248455371858447034818172599867344372129682474782662458019001540030096177196088429222244348828998220149953755359619312414046691601675980736131608776262516850763509757913883243777502166863111252299192459895704337317419488104712012807886985070413301616317591884348187415914358469754204248087850281031143931800804804218843461869250633512561441301451944531755922144071997604280503488939501561044327794793685859097427878896429150957722865031101318573354490049970391097615656588177646864965459165147466931969354946435013910096060964004576349873853513099444243061092554653481383511227693795450496301757700231294481114639038520578876640108630357786674087792083282885645316003223408786366776443871883537327135139468687645592240449217392182586986704950625769555310196042820726080297238899919938144391321871506778070093156769863117600376856998328305223987703676528893178735517290956762508349243068785043586453882003212644204161743060456273340933663150219227246317496588696485661524715416168690913868940851395088083970568051787616733161407003746075381732019604565644919767625715428226198523085963798946954226314103340775895926297308010622095301972672434400600460779871640743705877961686614285607182605272733765963537082181899449705119215079452483922093921294811029180924021420510695564572567249159358866330829543897414806594941942962221954892401888922184105339546283170546216735214683844412564799613470510225445085669082455294953262189433047760455396964407511790358641354533177495808452164034078588146315448762789037914895444923740319004155871320618795149860882680280555308783297431474375556051133744266274044801675787114133435300721207665562785469721162307637598779891531989140768094241909120317872699608912064178830324396838540286731766010164611814077816892012795985730969441212336751784453863213807719691209499791712378587766943553071059926965283142572402711292686634118063429948937616630216923682056507821391943965339187539188418772179736514539387394371478956485058739874500954721103049457042255613971565524013782483619969720184249099387351378108942208897776367932761240861952990961156787015390634721864605780611543822203846176644500275434750966280900880669710613471464320769816088725066813208973588874623455822951925721928990811406646658203492836119461938115929102903927852628370878278685654408578254940151090285168987310415369692248916116310310047390597411897524430967360641478173998022292435110476837709646501182509075911939146199623258887191957491575339394579471320302412896500131806612041309731570235596408078066022230146219881290204074883640401146255081415182210371365921988275511020374688373674334575252568006524572550273953378655070715564121482716132943616522511635238759141562764083946818740866158879927289288296013152243096851142562294120448645042505533106722111965477815774145806246189224359278343906742141588505251448348197341806525639260391114944795999086365198232200886294117110054443666179909835317563151909922288477246590280060813416851468124142250692013075530022106881627824126247732520823543235303303037650129117700931176105251572553969341424140805270472374948478958026487495936228634651956773219952242112461280004922243901732921397727326691247267612629731739622681619865451652155332018114647285918055550374308123669108468385167860697439797525124330918932759702765991971558688459605466540042484768098868778183044954243992220135675374148935295773320537207408326918984171309976096567406035060692583187880050851703670767969900022949752819355886239744076468320513967419631592080576343457753565399324615740413816086659932919832042071052600989489777397118997180934690696991215534614099738878909786095607637595639853858565522689557310055580982782634545807209509603741103529208873365783753405277293338158470614898766044075551108983684017228218443227130191800125945708869323401077453304304641155090445660513457098752788124533450953579923258821838021284377834074385343573213498530366603165959968015896111288923551110738803268536596772740453547700130113680169529202514413328938005153342125884540003150151422925323251833053701870603683457290839259657694643907872769305133028102070386981511633569896243073324614189503527943757957926448400582808193100811018632120422769864266011881580476534233415267757556478145417179248592135914778998460664920676503030231808786306794972577847731241948824003985792178765642835518824497026810703501916357546840743154441442827729993517852873190291438854481874489454582607372379025515031282182463962074495476320580018194020631440248498622294245142626681786824717906765595245063413023118524034497709949663109265731964454823420981278403440980849918885526327096471386427893942985656846493144409972236227783857771677081674212946537580592675489607901404535336708078161540114001008383060113175091499662222745367122891021672828856055148975336979049756657428118350000666514034463835873914075610992514689747256918642215827753794460108715262083790773688179725634041635068300229441080858229636243006356139498888053992403709080632027330871597795569818254511340621407803179392167387750315433975943373287489659815651021297689823174824862966265225616016145218416177364451635427014281592417010449698408579089890831288711616676642083022623260352754241189383289646044488333752656641041751105581802544461379649716312476955872584874305300990289768320058364360990400315559138092763685908438536958003583902294647122720550861874752556328414172577568013099195087003629793313984241172740833677354938711084215885339968986843580512738008798289349455269215152568236884080427818202081074305182226934593443333564658042678584694135494557724286863977023733924172807768925059541527531324311098210604641279745588441505957144860515702575103063950767026110202018785640634597873970283255276577739765330223886855149466167519341838130909750908634704110814817164622304092034783830449298462886258359827731855038180482609063565285699316084798074550399193981128790662590825127455552202392902978611559189361718858158517783117358786690841607189696784254224019173193516793954692369546247252688557904899577639930001509988071134427160073580863036199938522536019330200351881400074448360494974502327751435573125236230872706358015789709536174702048653781714637364517101951499693311891003744714388095132968054069652078472097821899257632806681490491276044958014625797044470005983592174877464277785922439773960633224817563885425015581649853391031776312993327626642596638664840554931374903058627270050283500303269803442288292574837893624428048394756928317153202527315427404411820511990782755302579687875998046560034025651300014069421724565123971863657522330211162874955325556165491710863676520269181961041686476756124406649243782432342717477699288736706576339908124512315579425970416683964968000278312785339119282456334805479809908747381067399349610155952959499145759597383496294552011299712403361323351398035159873819021280791988815262368850664318143390288813389889346590131308726167266633264995393138021411484083090682943099197486548005632279655489041302470253374409130849456276225545851097559293103030673398450412667802429079393364797594833575662662937024088724414388038280848587116946941250790291031592857557406347933901580392630424761980851107260640555051023016673522077499991311236846118954430660883213189871993967630674503695390971054356042842063534636632715760863152062160138846038559869831804313807116701735695124772231136655325176292722719039114196493717195043846739628762596230115900540322053020299219313228318179581938643143319025864216290297560429816363465930429529792263608605582002458133873920329845759469633744148543849689697689159078264994270440344973030313927933868574032291443878394750670811087415448557277576893176229214646113656422123623906625235640455247863558948083387830495693793499134541038653870237190811491604023854337877980857716740694374560738543760716673320147395446316355014295223704669792667540620267989629107787217444078652324906262744544291124395026101718269466437799078107106507458547083184655117441558734860391853136040667212125908860240199946223195217793721163820288848596045140344621916755072758861411848293184826325149819285945472007533935332341591355309218110482744310146373205857188732950932574662801811756832279615215402480024349122693107412058646975921064830457318789742088463736014566137938747780143207506267216021377361782466046534037367417751062978840144676453887201346399846666427175836935032178734900301477453462496208730516525040284829306626525686167815532069924983917046902309447728394587548843949762889431348843564319722423730354186835010813666841986575931644825078995684291531854183567048382529304965816746962816723087738677093153679738571484040527042929194027242856006932876864766732734838659636614578791067386231423815650616150129824906498912991510475870971139260972188625048632876847412842473265085579047024868975279487424806920901802348854182562449577900145345986762850183313871798756952617179103695455733885091137414739434239168141097956333436391888581576472896973645688253995193518408895075983615566086496304428955055947932378037334442688582819286913411280490445734512924688103527034152117115261296008083271479980467366007505601950434711585084805061907708837643776903531447283247608212622132001275230614722730326582350957821314663041056884719467659825846443242095656610396830660568527522776232336762324940765617554788574923432169881650269927227011497097548135947666546971681853186934963931234509937095960168734773569782168421589592474840744757029660716443418267483671663068515535599386234373833766273224522889736203920724027266652294770947624402053674221018748160528340101214854389957428604142267301137682678634612210833267433792336379838693185557497963091090035210845891753425425831200885851074337442390908940808034201159056952879428081983658287767565054505076442658726148176890151860923793907163122483915741387125090141246658807392432993976479067265205436177710361951257366742368057042287928177488522987783998513835482453793307239917440346390751913685365247310343523807362558039478192777103588213778330898697170275517157963653952882543107494416338234546030031353658610935215938609590714390572560645458468597536868855209363442061149300507148180150103226628777589436738059334290013453230588668710183093347768688359943167586458884875778266893412338278619132238848879519910970735682880547097633182965007622894140074403026753847685977375496233132883174710064930986605671047686470719960255919876345936475377040170612748695088448250118694813165241228737656143510677017743744434805008164890371958667300872527739869450470188813846534339646051159156620434672530637378314611937526179588861813164303901548421570756126004192468311608957087426683860825387465115941050846445232884846904573737315009231718159036619261820561408347757733128308133904031379346918048782848702717535280428526228833244088937720511175281882969206575805690667293118476924417886570830501665112145836435457919457090194113379388047208592208547635470207094252377995804999858781489198030705784996925398761516617837133195614487498046445627196521541397825088403074839020629331947985636507614829130644279438461470858133705747673580279570964983295996645620881670399346913708440819537794907362278259077308556966446981346863824130746512305481948153752619010739929113086768123602463983819995226778985993211675288619659262331559929181775187046188045878549860441659363475486665301595033262790779886784281424374141396892125242985929820496642682618893274374089185401035676789657251699799250594294164233752770575803318231061153593976434184690149842447085425872708826901279918295536665309496701508839540684944267478835087133971225347006206577177181372518898890125876378247289121436437049614352519182548811866879817948423905624986279515589993619335947815911123814577288557431199702170427862173737744826574315133340940440930874852438521151179661728991285021981292186958093646652835350057863363686416118802575550942842902305321168032187708661780850012133671187000013258866482725679461977981301860619375625763746373881984911267290955349776049401716576918121536801775619457136314096187408362944357786119446690317117833689896901880745296798021033397878074931760783760178085048651115786500851214214770014549592062991088213108829834275886230809374188830510673569572973243069171499428124537176525566968378769015984651240671588120135837643392858536507765469331808041494708800215363414085669616051686292688516597881902591751941380120753187268824174522325770424975440343342506923983052420224032931006783974506723499750796711085851857708249671281241611031252052377089879469089358892088643161774582454799025913622084608484074323358877913139488615421001642345978773436928786267777313205403543943436710642029259634128995932121700752377247903981170416282453699550967413019579865355800515122136545746231107124381958956139134782379403024506035832865311334989728205874611887152423826614499296068520227745322567045292873844668371475073750551733457085186987767964005436701563258754812864551119549407743254451980555671623175082650255350882146939807267852494872346037526594956882696192487394220495610354110926861077362283919951992549815421738534939150000768505880211376907141332067094286870981966470781793566176306129660809265362810620480363129544467436742320012518416953298494033201175205890884596895697573117421032803871410567336549999798368843088128769010196969670442452074940171337756382095490618586470789443667594209045661919054288423135613371582479964889622021579185450570862813359601510300042459271078394779344799425150213851301962695085698399900847747613987852496453223543073540359002040969758231391899685396109667641147629773906516931176047667936219690706605114820392318894420404141714030989175006212286419324998110122307894417604087463873307078294409495284323713887074175423489437912143226791234170481681150993543935721569607821426694520287551408932642493026797854781305839231711380898905593805371356775693852087329718531440819184678557326783905269693821907852194687694382446189208337348846086777603584280685481434883987488523349953013545228722114179952245390781773053350038108158361356258882769692653427438092590778125289333424035951770650286579015646110529332977412767239407136333489516376621540269555068449968362177402188430640269353221768624700999827447537677464778109273287663522402825455078671936910462697348139130024684522922153579304328145608997425828598660546120178741455627526091262076671971261278762121982364618410906804730921866858367688435842317324107874264677674012147644459976717783091018875353448079428013785683504536432863399253848061813948251635492730759961419228708804289041391575510306388697431355197360799842333929888541181229915980919084848791091210098506455228966453551487262749802442426803584133712277843023297090107670048674259479506992487150725692637550705736270970193650951203252583596296610240334187227845641671669797021816505750190166846725830914442680814343506082685555435039364108808939854333122093775551250422034600020978994081058738813723273142984033879104911928415204676442746192142511029847964111528624067923273356328086385264394822116433645909325865062960899439962357257863339801135034937274399493130265176502143597567760869016584104929997828120319507452267132055095505371517941237908229864286435957599156547771564793185815831425255597626694490073743263419016345473951814904939574280964299208716868824615742121766164405116954542739980901121044420784940506368748922269055953572891292287502598061727202123019010454911282977119086885751621999915066475191498254621002630023008862208986098559751278181416426537376694944227009393483011733076497971172929924158559192045743721247577539628852301733036470127191127755093352514816893651015068865449102599059105867883783945520266738136015960292071152452720841038520985411576501167007585913860001443375157899945490470579020775835597597306258696271459371129364234390856464442512634958133042073272894634697216578367433611840615138448894069773363937004843769926055286232598646710276644272308617433399365760420669108044583686686933613363658561412699361583153622799393749446316263330280066879841077781643695998282752502015712475481000469398155100307616847501622158094379280968841689266073563004059887254137835033093072049695208511043627798794741433101825469450252653349530607619480875947983429021257834005746201242491756948367087050686187000654486657985377454779736201135426152734587135738190819828213402692908377894906995975551771972681772568143737833680194218647885596990633742167125132229740927859916285037625421045304543777860502363425661459643027670244199677659467743191828864889385019029921939758557443080907867108067132942102171763070896941218890075512351855941645759809317000520769647111978435509156415237330585568815791013565530628837758357418499694336497336135986232154437941957792402829915905620665753532118021484807266441179270675061987335873634669279690235142839456569623331832743227270720347553980300466520903824896384346801900624798794774272064749235839673208949549308107674431817361996144663592433767379768118737877055449816680542909155887372809877842181381048311732094365980962556300615932757492308356538617488061462600660516781051926942095041272898433168667688084774062526915212510968197327811776896485497355171541667653895558084671038641395133347688152778097892154974142732699883737461348019345560790583189804216064085989393856743298612944033581099486951913262301090182153279788835983033488013674551838035594535337020790739890504131530792933413807257998052547448492864720405536984344113588530225189336845837929518452709004308466645796247199362308937798737966460592326026873092129852131927844545140861976741280872039385032054773551188826388066992357328822361410149567004800878893078269790863823307947024371731824830320349135696983738178760360786189463493967465618862189924499173494342251472335244184528268281580131092345387355757503917503037020400036541563772847603737594197003256551348710536950788311272558742887192669547775736281142501244882226859449110186793314096044048676918168315616030720537422775390818403289076453885129624302525801002955387268154466683810782013382367294282034824099124009227436447379861814026165329829979017168745081265488670091746276724348117196590048587358830878476950656327360710932665080209658518462628547120428089806906463362027636410705497439937243547674478953899238523264136384580592649361481621683878968807333071259225365162706501684895169540487606692496375873939668064886415668413173149707177205301174896490288602079130140600447374360111188492901227360176308425829887962079444933244535762649320976387253200643770035055958385523194099965371691218746214926060366682776081615197154830735483731464483965522957581886556356604908932199426872655071342289881850906581092719116778061130939971308809932315257126859386856604320314794014096882240782010793169719674561895328257095570286591629637159124464520514736186242635636438708456260441778227228992000451940618696526157231997913707442630322316647950727552736801245382352755979525366349363029352796609372614667422325004200718644965953943293765403540463960718164096189704188986200642533975223166994853857834607866295794793638856587257967395327419711058851629294516778392576750689876957244989614626031575644680497093494368650081486408998929780578878174366654745022056957196814144892725703278476927860749916304460688771325961900384566013296693229224543365744192828945670026945418458633079018633721781620331238631780235258765348726866232997942767852586047103056118767387654462152907653166008007308547759642856545117582790386674157862883926229455621971318508657169967608122466499983912399513766131801606880243525950484148019074354079211480786416322404418558780485085244247471669119990776833956603646520066261527085078442451298727712069908123201041707146687377243353308636628594521705199966366125406513314724276499139292760621036313499701727483823455611004772434091662395519361077371737115406417943959143007136747446500334494653003638481378326523430732617590943285723735184348791007944248977213043678706512550163404552151355876504048083111398111616904445077099945235818984071993240771741866586543870644179200981534201415222839786541787865053150362280455568298824556181301461634437999104071685191576976976357983054374934679071196337799165418443732266685590952743141281955183283370054048547878351386895948134395273372134630573967301305095962161361164576416801176822567224771098420067287853854773232095692307727501964161401619733878940177014057627935334986029907701074941154107146668304191377943655431658469359274328607478147117380280183725026109655520688597879186158156374926638417337142384196162447615047232128524310003037490323125663125640770350616727466913945876109897132075400442997894616611880103481186740614984549869862384664724182493668081716230097902155122482544022246068891199645006226362516562268817736275270718495622372415957480100461748011619583390675847875315483324833535636620680998589903641721513428093824689867526977006347153929457991879055165037380956750504929323873752469955619302181234016525384435805568034443357366530535472006965218385152019033156058263484665146098014281029863619861326557609349810110205036392798138968293721608837809047497744244796471198979196477154097925154730936234917468523502882111858989427469773712368512820313820181645301840558987086182272880863318768207237912077473321440964854471610963880705522568485157159445550951081494580141251475016914822927150891735864882924804444224127416904694344542430807146108511544963912050059164222809798959745938084651311199174846101496691758895760029343476867586209851960368937161684297039924153119253222435422448606589451011285624226526826954516069611465219674968359654266040773097955026727733248944918327467708006091417777092119825687771482429081477966629220550805794961697832740290330353370772549497345739639293555382859413318359328811748740004983383001254172724880337093631747399487676654614929037796692276807560909416613571953087702296770034668534061556926936243418792804858836265781523351916154343588972626591540385350073806016482023965467246302574881255935825706184026299870064646348250454159131313026461907762596052221536893176775188213671052113930760184274436595058616199304620855788052956346495010044821960075473351055873072319799002406143643231141411740233186557882243752477732359906502206420499933352528185260733832211991909678439181914320361609127555536803657561495446240017881605072813623110649373692553016228106413584417813705431949301037679098252741343958035000212286611100817046063497088858161007978997694677359097803423672757045672214396238535583852123569152132270500463440840215036897737606340653165922618041485978759301167140796057568060315238951899421825846842270807896275629430878113816351464029176827989315273589802385023093646355258914669526560571017809687021240163511341397451550899304229193703982803792305019096564062887047927808576077163188664157676187089396805481531637001602187592725910070686827472163432002274767435248461004543685227705253020365391993687070955582156811374570298955584579261587645213413610052848258190736846900175882496604820427507635004692360051473545308298166247924642512531369927578638219684135347313056267759818280094110660693408622827451312671811103886278316169032435230186190305532413169605458134031449959645767887148985044542100275140200440071711037311914397829751333228229492440903682211944783475421846521319583391369616650513918483063130456419070564913983065853333056820402895833979678728303584509928058795820223517410494857876756035479800956285752815850989551710191785336081122114417700455227412274220382526686960276361104819236406255703180131877621420973238298529465497621356810870005485715055775154848874367069189441373034952998942628755147011836830837405848915277256324994462367674651552392799340034856929851229794643586819720662791403880454864742597742170898416398422944664447280426651628349650681883467491504101569579606389014969630412176973136087307458903021269286984401555829355837261759866515192878257881180667558770186750931746769841423417613030826646503761655303509320111577975097418657988451521510747896154148368346644459951426285263509371719156824091559257497764818210634854362867719618377171138610295077310793906985579045540262597471055939668004641593874600531938499624422705230278891157400244649552346224107974085722892660727044025456644616277387355692060333674211609244094873817192860847850042249537659897912007170620452092508109725282796606834592694995039666013803877298577039232403792778191293080612181965669872333818672257204056396775485209945582732798852095012097815301554460644107066622731792858591440583763091940137370141244741240849151821429137732754662791453563795337414237900087699338715336062522656230832801964575137568614359817177764358972178256089916658248247939407917683208983047554564248178273576270055360276510085925325260062422383000920811339335977852896570770152776449382826097124627207236682563940937573565768290742857483419736076601375876125976469585839386310758789334011427699097794228804375895628313250115827415710733665292375384608878400090943819018705043091788321018721417794463736698146140632052819212576829873939200822692672008563509732394232484858839955700417180917355064029098556456044554092506007856982944829486388536615192180289790941140595028211938108209870501780075837785016626799934185574404246428633760468514515368168147033875753255171492308818667906510541336734907622571679340680099132628095618645996750315185881674458937255171311281676259184778917345132840013491132204149687439813722426905708915312553141753836160559716798161871918567158815474716128568948409238131093232881972617109653988542318689976663370548378907323692044195176610275544915190330199303327920398977413640222853023545696490171138023720820813053652267841431767072872070408960445722556808760810966725005410022911694469266759657400788542601770844338206277515293426445948987541509980848361012082957256063178612608570851541243578216437422806367378781547997227513928913463373060951203532934731162276323323608305946546018981853594192273890049455119606551930829871231829630965281698275525871500490861908505848930144388098238629999166054296666140537135877423038112377302517638310498391833405543662268314238521037647282702824296262585999776997453316735702385991196949413886125251687644394243446648788433916189853056638449467437143141354909575929226662361200075213831392711805897519086279573670909517156103886752545008018664097999444397375156823275527942374737314561517696615550953244888313586310330057426427876917684029596993620429910620955992493973381235665749595815307510455350296894654454342941807119586147363973447111598370980580745118768261589791043943899671345351450598894541558948887907394627056611431005352825102701338153397977389501204888518991049350082823922657734949953091808809789279357688418857995167977886693534058260979425940196457588705102973513935914583534291508004113361648271537845358668507720180261356840579310360308446306099106220659029026256628995213263164927414259192631184025519974034531000922709736577987793740471332358568114300708843782012551902394157931185800530780234795225378194388582125491533132445055431590992678726784425544703579763345314936816353851340864711124249817682983074125780442580202744579846048097917601801092720401645829874981088460752562005648210717335213437501841725207276095382022620449404940542010091195108947452275508084137109161850510374102039524669264215024884369081770106694530251998690180517744623627659488682734866781622496708189819405892313453208861822115407925707962456050743993861364145704904408898710485766682101784690035455990548310226352519951200531809074476501489767832809213500518668904241682208282271726782030557007839720137533372981970603675953847391190452708153625105309411547317442904887228131277280401795275075548157175774195946427637221331982905903068323968874772764835854408313250254796947871588504434689149577490225516243046095708635460060862411365737754024215408252308426657334403108748105701679676647537829960406298759174299315686395440214657912418755710309566578831541688705218691257324367490296343071143989487233011284323721811346816614493513036307190306109116194015664970555467942143820546101610037634804623049661861368007284033492552612408057694541212123574510380526356987065424839790890992472896312045278101715624938585274326693192019902991933054335550426008442501021747762104719440822666870449733419889339828783421256309132318491457924300479933183127556301947983715351949450256753628516322233889196542076538597620702387313090214986500049771813950613060831420060725280066699692841776242923018466177149119280296233738344839673752115088066471955495914711777795407581584709223927799391715685382224144288257018164806195306339057539427518245884863806925511344727757549905645164725864904760216930680974539208230062187528133643034539756151458506692163506317327304314652080987386809411794651083139834894003814199355779161894341999961248903075378351766817916727284664301019792428699116942860099187384788993529084795562448505392463093650743807747760508789235681697052324929030827377654529889400109738427602173486413733831194270982549299936130900724732677801593014298096145329723965868336490891908356556005900423785390188436116612681044968141137890332711593172815186587098942754816475481180237720549272588680794986632734291876114584540142272218969363263784287675829680984795754579689856575975522877508953608054085283462944358820074256725150497879874398616183406404557696803438500252387320766167976826121733482513243741502356670240321778572531744638182692744393605722597160295558276547665757751431410449668422667256365929083269712342329170414175713421410376354026790177318045182625425822425175902806137668268170439247643541120613288657116192272075034249266414962504102189438511734532506158045738810249733569112690704819305555005931207961064735995929454555990635116093954421631560703587319778966074817841275123520719119701756204682886851346512360700344718793939652381748442596228388330733401120064473253270806568489197591653993939801453382058987980840334021292823043731223324743874219349678432007986479024106073402922233730089653026237915826721124635376011157716928996601477367364239451000631525784695737555553855126086773372974701781723312453378620708967515530534674258321944560828327339191083650786390278313041163823335245380003907362584430161313245906225592905679774477766311275944247137646891487912152673171378323805359365858579169331281124028389124114702995002916550384901482414837780513632837517824562485368018816218554117017504376032697818087498717489088677041653388799549400616885732155466415068892497718668525401694541993148839092695044084854860158289340830561093854555990769253634957694319456350983474206185266970956619437282436297744012407103436135379343236263698588350796017233133843553308606682443669719713353502314045371896955196329192243373069414859193155944955185070676889035750569587103722788708363185180803685949129396223871531097448346324222641151870856833411385610038653746652229985137784119642291194721344445483029316651331408372447860650430128047608787758794217472985908970436616437843696728580706087303684580004849446577513744525804612080405586879487054791222319210949444454787569318295542049062842888126052422737958713998229237764965673801462806054577502017665399183454593585629072618497994224102413772305453848329082480589150875924370100977961755600804797334189571323020748183722581787239909041291641063737595718637287819634054592451300037160047838737757961873251583967797152831554157892961100217844231771671280826168197229529752347281548551026479912074993283110409061163698512723740663756608109229282263834395357765022540458181313756154219461966527846452427287789600475183687222809565182426257590622843246670877274014361623121837449024519921377001537993459758322649737251064695286102832765712695406486109653327337051325286796838574086227617130886021614558334330814687907364220389047726194815809862742649599797441166654114206077429168164105831993342448199561383962431731062687140798842437679155272052060378370573129508500323963831276567189320424475835554710100065245449684673863026237323916947302509069389587380427701885028568611671373782421253894464267493259239754428651996846587934281369459834601888318465468364954720724639220488398543454134194091857525948018459251352097015665081625599269035144676042841257205697029609122295858697668579713159762328174078144152023075224482758013461315455347513434725146279449780876818625850726344829804189140274856003095157167708647128378684434455511873129194308434849049966794319912010078778190197023886792430143129032838586310147029353709384461640714872972899278802171813893492399471212881927906495814444719292054124290047087413424019318386232644249828923891424520295366494421889724607036668018132854424857017985270358744326692097270436692231478978880908951166443860636714459789221730194372356397116066133115567331634366013605433066141014445058019260829628303432281650675370101296706521299766874953403409430708095243329557233602294041344735017312160409484661322230151987920319786101407475843241657935206073788378157040969605619017103039577441308557059437442348850918308825945105420685307808527771064168424871656022844409655270531159275141698156400747508112501043386593771335654111797998909516691779871622799030797767823678859843210194855255441494225278804387627090364295940491315267695675762465847764999208876053450464004070090300028299241555736050822817100212972088191594159686353437977268996125795129287810072770823394522067502389302756623498564000956314254635516599939221105541457689565134893045387090856866379470670635139540224465984505118377810654909853296113341249959530198004965909799758067669578777279695296696014921193177773984216856256876423775984932064849006362247832943253213461875030523363660250121806649050236569916493783856410212372017820429154667644408054191731066529916530532565489823959195438896551488700772253368124294981476440888828560685965957473747079337468896446815978614879035338485452003335401402196678522205259674618238560195681330730317277398769083891625075145343774370991563736624431573690836036510472124404531331026578106917826445879984284011802867990622376057412852211292976513963255675225960916683050017918647836998026425002586012305341736643999346744288983166732566978683206409953836491301848215405728569533205994475124008359105552687665897904492788694712637508793400229335979610156032462459691773600962271520000596894177950465925960248128147402229112836246104677445478762301811850177148875367800885922813790305670964293355957345417192341960544815890603155276566165990252585331982495313925507113411196893019441351525555877412884818117507990025160987706521494286484625621986400409631536496600400881815042889910969551193471499922109984895973252153306247317032517094587410583084448651844735830294874864048788902451017103358308898343839527738015843481422375583075008916862535426456403714186387374029650645679943834191804429202418261041556831165409334145602885373868793728495458420389310801149281142669613295643489379310165850638086517303752135446822315319971529426923047180010678408171237794201549766728818177687107275768300289437954907979307514544173148119772109687553528836978706009271420616825794913896600938440377517647893588695637436666303122746997442548272393296191610220094324350945879381720271426479251656769261349657414888268097439127220953085220857266109949626245962427401772957782968194148064304089912054265874525098856766573163441555534229444038486039964163554534866131728311643026977788667035208250000993899242621078858586386088249350305798825542712116529867770633011680476272222234328599260292577541539191740276524447961764492757773694624120654675116853872987210569863102583266923620817841544176897568566982411140912336740134785365780743453981316246724911332315301513672644986568395454657939538766335168837859087303763087141105480386262519591762146908852388989780573989711184660013711468775244621264812497892687238661272180430610740638962497954072993110604254660219001671435222441479732519962757129638234428327754564029017849139062410860515602233345579947680786825462945153293206822903286442857033699986316159939543979875214534667074007424522922765055782375148761041089057315501686041314730464760651026655821257766946404651764610247625223075306304717850914714307951092565983090517384770954078678969176307569970230740094784963974846249387116717760799827271248834500468333920424528099643119767318291599639025227458210111624718152827518523647269882201094468164792319590267482269754947060833050639860061073088396706717520825696107582271907406504415148854174400605407133483560916923045612507041768862093701146203004454462964172208333012082905771297935895095768962785088864535161219197001339260664617224365178835042519364311007202402123027338807824198158375931281063112293375788230231789327208187208272535300360451952977929821973842129556186061374868833887808215015716432790321746692337285489764006248999318438458124272293744104999981805686153620022345055386325662405084235297432603996060281458369331221264904270633982648386930486479102644503840918730044370674024526482940158177071776213766702709796539353740580746109907242710604449421030699390065538189321299002511664272627985158441667125402745752470959538985599831200350194844895578072498262596121870013197031021943348011802754701474263293589604858286282117955173218410687483481187599626631372058154384380716716859563559118678611796002747983031366335062311400545059587582944771061051724740630968538733762711954850130235171116900774121483924763255717008915489910717406507758286822841456629145759536638234342132642954706977965308517557568836999826578068288417179215676917911996802804578566047831508765235913800876716460082980492913853905506676069719192523260599106079080127065185288671824068307494396262740405527858734151282004886187422244990166889166943424127243168745138742777871118805298923412120880864257204187499853512050250102028334937097415492244498906300290789530100038501648978658711284762464122594656497048668469534898068347276911009416967231290708573590889900608611867997964489458207119399734110982395919048294384036606878220458098998400849634597816400125534912145377538115688570673659221860178013954716559621987512138736355603212520586521531956035105904637149027039200687551831810750755040775798539863053164302984649510765924527156933371919478828385043500891812587526184122376780252862655521493785936484084586433447020041465461862842133654149011455807618040235880270381782784758532936132089336821809992292012431089600542642102433192072873554881178001251286467365071359394979261330571281889498131996319299931644797389704080230240178757314234812460817580036986329932246638224484316363095633441470354517699849375768829247788239398994130889646572410676659563876072666095952232214393123812423562070875863338045695717698247436067543209408975378304069923962477045231183656899551236806131588428851942725990808220755825201018739899974872892355378640378121291229384647426775017461663940220657616522845432200811241909395531242685104279198017952277789510268537154063943812986024477341386063566516422402732475622832777026714032684793156989094312163803663186591573464984451202181908165721131055984246506139510382132691454383884099067410039704099884072335175973515591101612649063047362917957151371912626726496334419780364574543156149196697246696671106197239175644683941148638915346522644575144583569629861543037783428181643011891871359571669511311202267036559576957147982388004640358510849440420469840953796525362418303109864524900093839036130522250410196254715227632140624377526152450829103182784096224044743410854881207064404999841513968037770935418034898551239300586923566494846599002399999203747535828498834158110734168177865665300788616132947548249674503173083195120575103776550799485080313139788455032258841638441037336578347616622851386415910829153325925973656715810613480689452828243689253662516393057990710510081396706725157876398756529714931310345573794843294325135253373127961008491465053958820394449067464904103065695406204516724410471350034420727538326948277240133854837414775402732931588794485477639483877759812529756741069652457213533066432219202227090993623751638359545437396593005318390400737688206772269150043596334052922692384227625187975738973161176561618797615324093694250093982056267370862788578888180274836713942290437298622794073591773995055501387999350783368769117449010752970138767479738166309694634737335362874999903609153210762454998136754761375793205640159428548852878418187422445679323777095563940638048589497837144766174392350266864992990141430879291085161164948719649595245942433333771368655205657700724524824476836888542298280288221405911112158085536736347656237421704244627074821206244532549461396434357696304908476681952079381536128558882243926175627989429508429872745185205570380943842517132731832178634893243892925547986615860021518547291912396709765659809834372867884512007175314269221450048426495859271124036740639210335657977939629287172955852414213958108714430101293689896106142907649517074002106489295719676464588638779275568731852403071387287831566087748491806120999598585212675694961473879938593385920903256600290175965779598560318145759233969699920267540300510336734482763380238042119072832432248645782790032937722896256575493548945825665376389527825225344394882694599432508770021123020455064268920888721546211989151447658160699774221657065252175983988213592126192912977933409792990816476024046016653011789933141018506119775538336753978253793779745972687099922794964138821777024486460133173634510877812997800690824319478631531443875828832142560264772422087948402041654460372154111407633161672516890603830980944233027849984841767386526964636262474512715825989007991891674896984146865399071798490366815131024121752943988268710707673445349538302845450211302249954502272893950849346221269859115058972358487282536285696766337257074603143997823450958392353093978089757280478465449047850596364935693650359157956942067641716781337607057417497597429446048543462951390971615699151120326622767913143030732879198955846187241587853713659730066869273582900461179541746670843488758368958962640198200367909304161312488102817766351246313633138523168458280950998880276814713679950108299246164841891661255281558819762413259710471216158679514045313707989565775837387409302506319875195265435746242268696105467931884241286245525173444033674818177022135839638964616257580610371935655373561261834721640328625409893960606864431840658364846044770889212826762287396303584960646476844789273958993137737061821640590777815296155079753517469761248613029880644759645479088458650745766026631503282331456744840891928813595805335138678609012704223642476818129621389706199025834542051052322326749537788459815034643101913304602090598387676330822871695631990213779597490764828496719691803871950917935746563361741475841423662010574438067926327927242979428123595579548864527890106994025240101285901678553880731167381633454821043881456335647848395247775238556995618456252140964970786871250371981773359438127242845657088241192250024303540682697277411399823230876905101627534767324848151857108400942144592820539421260775517521626238999449914032725077770874020574583605843831181432993769784249199632373550485966185648827617477312547701662918803569585525770244986911037148596280932099406899076936284462736699833089475142499393164263422744563619329120469873545629603736785653324790400232181648092160555651122315464565964724343072021601576316063613020962952181226569304255036271358351013161018507464921875937165816769932497873978793494873053673053138843285950083125269441981229999144316032752333844218236801050780107403803104708084860361442868889676029666508315513264379853568690237295121029002320980078305116094364611730978799053470215351919507203789074251322866396656652960964802737374363476133860111632918653181117294371749812658500147170303237455412381584688028421968192469694636486998350644361180568440244788896470080750816633984247281413307234572286547691823256715999467284606815669374602454577589695822563275280747629981679086498591929210281655421426382549015278120253683053571970352476855204717813935541711625597022813014669256165666211534093798061262617972031480810078224911501308837829966716736652903958295102125025100803079095392483179454109555640260224320273920299450671533751992394593630953612841864700993078477933085424567796247284878741656271257040617582661493071093442931810060014786716673499670688376934537677948720187578818623694177499853924611440518869954737153769240597009677140490002706088304065160079420794446818505717817967101519942908242667499397932878987816735508700289154265674130532654968453548944905157822270665635582351249515260909792899952034588910865665132992074593598286080192509731325846811970614125638121446075998958937832362482778158015018506707437622706789865148833270173331434007087153572630447151803455632985399506656827305286493241484226042561116126387992629157541666034799257131974605887172411564091499105309220944802438744350746248617203514108406531186766252504641770457625229007632802154469703366267921488806249139558824429108163260669703374170212702286437144525461021043534342752478208149130921790541391710304962122443902442570641148888414923150133460457794449779132893697376675262443274876289981917583118251215755959523037054019132603011837337298075280678790924235497152996614425073472990381022153176640930905835737411586637538942950230589669184398768146908720285749216008704589868696919645003269025108952604698039997285191315591136129274290984583695180120523061800631744153638520927021170387148316093269435317440932510046540396134740231423679761894718891413614401875741016810009691965046833431365245773157236673274820988163394522441432594958805887725914405617472978717980621213571823333172993104521576626936611933878073233119720689654549270364471726832509175698154648411605548237680532344442759206184804475247597124022620264683636964714604917001999381995561213910620376707124294711706802725512988526030968247977975138615841172417596283220534679013549147105724953422481894947439777114913148319333146544086608969711499507976712145402454140342605638260889265369919237962761115230928057588229206270856077640665510739377606204214048763087464711583226912049126976867702891320306732086130363779484765935695750069179662587703659649068604290764179138854349380512230542071363977827891614758617898088541112359296217271104596387360242154359357599707273346107737831312444422007309475681163153320091958259753059711418672436761978259385381287556952648032383102937055435218402744625918751549717687146145711160520253853135108357637084683652837253721357236620539901149065758862829169263738371310455933285524091117095990183588423513915387982116738977747095596254701178873785561187390898267429815476775658638449484752192702141368292890360495859988512573981009266739905461063924131838312760614821081331132332816185475926706262848292031437067417098204543581644650784405708458886475646039755638849860904391049269975661173087056246590430053137705705604951726333873493366180482627402904631493918594143178527168365806505281745189874195854005400591352820054243095736871936088397909170317782283554710306299876932901779682868438829096362834562562632896301322235830773748230733659171899423085607267747915124530453494085206977606843456834355801277975877868246506257256513722948246398229940469263550441771770588266801384511406153146201235071651106778184487208254414442705440090217188758690577923828276419812195385875247064644026860118335083409120923009706507749852802962905722442935573565328412063275615476547961525878675160923448975844175862563114202328692661221067150926851538693220058666681888122916920140353479192133851223504688815893005380117159499904954499192146053658575147057452966392274767561884210944966434393978155212826007625502078014736871672700353809076545817044472770421365609942333741580342882574355209794811341151023265344477095353765535480495011217248355169051767146674575354778968995962592801854379566224073239032694227757867669108851074874924936901073764609329376896992843146993716538767584591514979777800948988120189719567212200582135623789384270683724486404351761235204598889872490478246374041187592127120482574784932152998902385714974461168594379093428629341549309293370371008543219442589983229817765221909117382824306993177214367155135645281530127325574233257427454111824645786173437171526034413712298106070819339275001646136101555916849656338255215929313711887156758129458660714274224063261382246573036054915402795837285510281489171030294668399916148380636885900353090394581266393821297248000454128226815933997689842962196234507600410121019186434571750539479005868664653121105747735602487732986402986892323251562489185181128964984235143979036048073108601562894078930680671371548176797281080275710134677249317986729253959829569576179792021016641412048910333556527701908493485621900287444881449451252857716648972376855961364592875995211861154933718749701354657400814648292948175268503779612243030432214203540390179056977851025364950598646425381615632616446375178545601298591948685943398538396292826503626075769180405913665794807534696601828872236519697692113606073454330283311886264470060653111243439257098924009750894387728173159778096568670193860312386144467686120175623052078027102417991785350606739154082366219690965738021967593623216905637916923761485292337148761269716591684359777001815013184284544246112460926960774743088992042104227760459907804934701318498667329829481087573526185729746074066283631990862445807282953081735423166552480266497350200786384978271383666793204632066971435262106885937849390739840786469521754970811957922351999500569471733538896989903990676576977731255500791038436746892805749430496690311947543454836712908588813224842314179085111230967775394442594884566214468516442296524168273325006075652963060339362975297629118994526455467181883351435501523551124810396399159487606495288673690796568760364545635515020261729879789195728855318610327617182505619419432417130211200049599849437131085783780061907167887069967381825445430444434433776910440559953402488524617912630097619981378675961429746610283905723033868189372607645240539531556251866839317008896164467077485766304842858095925043713677861719778870733440680890249239662612072931688919171135350390180454364943189633600506509287851400318777763575368917536072163564132826841597233412443855972960658182073827775525092478976646082794682788829398634827824744796790590154443870695009104245242249370862735230768685247655146971438795732289122577984123823361314302482382160266383994720286343028311344490288016172538638156585040014530772461889817627449663986454708416073442010446011260961123975749923501138026357374332692911285882053469081914697928434446932705686988946690026588620450181246773354816352369397029088004426045950591265271122649368182446637152544011608497182408217626380099156146633807691315551468034574685667739842318473398252416027930758989016155816014247577414388059002959266362076557678886963031829010643761158657310978364397597360718308878686333050859738841743341031219089448660428096591178617690175042125804634671539273176752964051863939777874476768454593043896302519829960910234963840363332302418373248348288046792531964631905693902464164071342771967795988998461899925430282019839412832924674011671627893365144312009660255775576490688351656639809085248994531725116585819329954456910584947133822332018104787598812428667166027080613511617682395701298202424280022923704439091562510622786525241508938123652672678380650150290705862921555804057694993399190890406367958342885790752908403267544326403363444494604839518987607441943312575579758345470579888229701163321228859484968548257301442727858850218237735857792939641874831784860546686260240985610336743522820041979733899782775632891054812140031922809115754920232908521415766045203294627692138823291253579511578453319135310169245680337910800407628459218291310531346878997561829159935225500543208655649300619222199389728852044647258507689520321595300716798079783881347165587760489224541294572912619760740019884804254174234714900490907105018672839805720546250387518404367711637463905780946344094333409076540908515700951130832981649760786221249903475524355604833922235382810700004332107605564323578306609785910664531130326759461915893378754356898445089206265532031669966860467412825529909305540326189606046400868869599416020933917908224869895909063630325994684574029131957017382300097029497449315586767241981966386208286905683254856046788922931638444117451945941831191420018824505831492454447023672963612280673220219087997388410518804811963737834322530251491376805301495314232043027738590772164669522512602754445087498295298164254076201739497807587583851782637016888696055974233745258332845586267179246579521206650282531646338553445277922394512824076809484219771889621333820353905682694743721608591750355857940661398939287689911612486919378498716386163585669880219174677730083691831446677126089697952089105852790600108828042015824534380725871789921712538698316571501571510121248646562483611317640503285512785663180908120132566466783744862707956622400438214729506384882347819234995391772580845508810404840124958779922400657474034546067156092854152576399778986171997749030081776185883043215808386937692503013980052321885962777284865914546561019827840573570301628960560063593954216070083009800449716690183479579888782216351675978984503094956913598985853524107374567832241390107792053271014450659009925967173683600077460188414245629499273854564838249485916790200867768027640768977537788177930295894850230163106085934197195313941897471382557865169892290238706062322406517391852321660726004330799459061881859591002922209539765457928052921056989295324966773422217015473141556535819812883984169270961786046580805132914369358347881009109318715583852405018516903505958462148167950151383034709064566725130610420518039879353820835529130431931934534816249659130658234105024557787719258251204169597506517883751942966010216701110328326854549382965647110488740655011772809347524126198268087653449756401482291788770475304568813496443308829168342681252579514609059011995300947548620015476033498785812628381412579998063995713783860162828139537811924209009160851320221918758588717874702238898606162270346542154554411524343711124875876791147518940084029865103593388966324928451942222136619527742928192539158985309113721652732439401049253025866937326627742223963650243425097424370548898349499449608265897342288870717045166945105039435983883750544032834180090230327235976518513261204447871491027637489457782710820826256911551929059610264665342535870547690348627600886040066667877520463539163641521390168778371387017582523672920043549840355828779752200273546106838510228179796666812963519020323945763333433055563624529824087158146903893502241750910271844731689708408042311486728448554821099420696092401668368149361162063306028797291995481853907639206136494480965600340296743946593812533727129842895011794161815205150747000620131921688418459313511469343415358213204639969817412962322755994839044280662349168227850534629169548088177548068139476554969803060038786966349103102843178381327226067789203936805366691871170515389863440575121453446334976976435773446976215939518520547791143493105027175633874360433232555455085338407093668308369204330675920917200621677839341741781773808027814890205179750701708209228812648784248287615299533877869733799526431062130131240625755721301022502636572661800245268296530858977474531380367097244593502198554939082171861368416963743064321099045868922088339951522733294547352317557971913196187844280165110643698708506511088132293533083242684392983149550240594772135515418311212895776180588184685889515093084232015305771222421039828561010284022187877730849284598677557396040525547417236279172342812701429088521345755603881967597762153416063674430790308957925375869741850703491223630016378364456936884105992395288845347850836043487996538882456318250475215509668524922907672715205039537504035795409060535015704753939484045344006652673915986120483699388850751557965555132154670051622610092130557110278022211388573199252459284292594326105388481992447702936737846076696541582201228051390954636848759361321158370607511883724231760740512908392825515846514520904840121714621483424230034787169937639445868401029464222414258127264903062946017731260316796537055647803169531080562433529684017834513115553158399389902116443680041441975466084883761386619709863066962974319167343136936643727837741770509044389413909698179477903111360459434274176792324641624004104894483357275658311069183287457806029525149072812660477662655864505799385515005377398416463467272117080164848681408837500096069329484131489262582782654409801692658710075905318164918172635911795764500189473198323966763758108840850369416050267816694109207519312140947446153435725036898740988538355890194849355733619365354532139154558920623940649204858292127906367858469041601456414446279120259545436340337215365181657753554591649318872761851996281605683493879809529894615324386804205756930870770451256222940909857084841845998363868491461946720172567359010946586889537943093573347951491880473317522726587094851328874914682695702936889549635546081726348610106117281270050760161209691407145427636676931940297192409393882751711580821557413432493805201213968854685299807454210996180287289108996614032144878724360134214711588835055246832228509324613367195184109654195659128031346267069166867780027710223843244763353669729847166837570663315077546483134025162118516929230615676266108530877722731076238702506501589034649248125381795372886735473132047984616388020339851062662777199752685900532894494394096423082337419861616352746009916888986188655614138237524402931307775743750952810724263631818299671185199456508379073843557919254524209241772986920453474081857977739532505516238967768937985356152590871715114189047976874774743846119110912276261046862562540518079902350959146972694495681902434294591795127267574557363953092581833517527768290378814232815508383639274392822892056487176102624312620699803665472266618332950099255116160867946641695351091881256858859373089247244808979891686747215576308907917257720804896020073148506314984193404472876195138044757695914458989091505267536288578021167725557878799092778518773202674624965391240388081951233291708172340235402732788170425701165383792831579814772632990176909789840397246360138962030719304236070263254935590391868500881548277140430268321464395689310035593775213375743960270843645687908882465237957662801810644710869429825598146477054356232545168706976469807653811847782389527839480876665157844809514698651397636605337622707916322177420892590926749138660366773025420908566211324327569722845738976902502020637850500007705846165651551908298210439145040836466065115974241476371486551976831010082215114999334610824081429492843150710445630738164068714923257684724577171719224308396554994437652079723706463997137709211190782444109547272387325217142884720405993909245067471488447512362045610209317601281462792234165610826054969188334888051899803477208073662874870422655369222316350951333188931746822290506983316197427022447172621423134001040790558095630777389203252968909165607280025930753678030060284247159459624458777915790199758901235887427636737339748779081979830467570852045337579169189513045003892277144684703138417603439272873180529279867837555120938643610141803763133382854247375424110773171756386920694099682569861047276629176769912876877359198299187657393396758747981298583408725875914512932866975152410002504039928984982461048661919384431654944563731827864625490306608261014463769529519825139418595239374209477522575516781786689626188510046009871063048040329655331942764187487551080986687009854506914695880870579664217359820881166069602373859027741355293424718405838240655748056974155867462950785827878523500258433218760341392517571963228461373370733794900414659215722889802114024785937565046402917931783444881787821783096658742844777140650659982182494299067612939936966188036372834010181532438380916220095608003336002432097969184769430974673791383031683249696642920871088036899631068850753817874600007913809956620825385304662020493040651124732562106434345133448313507931106747976327916235765379495575203107659673602979698230151151427218110249204814381455013778179970316174627093472508746473328009009816013486373271997387361914486719066791114708463879978189823999444124124544970960988682431393751793209376180600973185167632675587273381057492903156616815991850406682918033603984483174908556904071432794496740655906260377533634615942940554227062558265909052305692627849753834453519907695490680477875243567347650207864031077354940615005197180715427932864102435620726446487050943906263715652857275853197122080030136459568533377629587083784570153838598470511720165863991276373329008978876901804778903951437900763609336344030526642324380505140295045825354160408600118807508074019338956943259674847849045618747418856126897327969731176613189266698401509583399556162143410744307221640860680702010350394209164241422891702983972285549470482977732506669484675739976168367750443632253405241500283870988127338573197300787911019991110836886691847610051912176132980830106765268565416590512357845086834352312191086869873069104502505190038613096503409365297970493752782381065415740306222937449903217435788797040569141127772003515653971617358091773804053733985719149414005533680921757953754882350073420767013187481793753014182747334766257629173174429729934462512025151996143669706078429461194859330322551216897056251295165463641735343436113723203715547412827112184907995084521073294122490343959730936646403223932125162356871616402934135677518649308266862512977092883548169934953399362183190949330656260300424669035153229870521976012980473317401988047199305308388109848501027327337996687338882686798728954449860158428610639788650890256602259046742104293628813892108655902453194887800303702312212784461278203518517865920849474929438208520595913598058595833822412286647881164146046227804922961930699542779862085613008520159568517631942034105119655752076457033355560072991175218256701194123998829853616472981940756812522346578322030694097130453632592740804299817038822750868054238788019351600993301548984624480364220320274919607892987223341562309557319390619122192011703747609397576925562333372541488250326633348576424099409303926680066056032254335112227516033198200220775956213105598153924582058112312218180295091618227670840535480828870170338587090781997698417380518912094781473462301378534169011485977290130399833779394037344652144680923694326820927557878706133709499474538882986262386334464098317355704106054614854242305341912449021412142343029976571147965822660946767263525438225095879192305621931879361643357794421133799846282508432489146952069240931846558468494249791215185245813018025011032607541531045383303410215550990720071529613159793157419925649353894588592872188621701274313397168662151588298895035331460276704939411713014491798598970739847853160274823747361873313208882181193247556476142174006631399590897270378667787648494186190020293524363348974838919971669036744555390888456147073845058701476492119035877939374184170851189825292586976871344168208431995743257920533067277634892933617584479190865757239695661660150408084941092768994648819750054330006898196232086914132773985138480379389765717343208850810882160762447416094457895563199213037310641972805037378071803264948210016013201946250915801180916218447624687025102469359251662175083785196182424465748082158804407843424552311323163937538003662187921405834628201767004223645586671654261453528370015228388351221312779261921744757646912054454416037823354852052559450345339051303501416262292699227316021787253027418553517820508602490941036848166185367235718905100455031346614002027396662714872104436089840955556857433595463514471898652194113285034037823098100214555554630528804111874903086295793781094893311074214741487753570097524611563341095355578251278022250984083085594484756649363503621113650186126582062065553710049604895021173283996742574682881354291577821815201212320510572877531101394705253956539882734772204060480980987375491699915092180969905812963439952513197843435617098776813808285153839784648831277223445450457504501485904157615235847213657490332515547102810304158579525058663538519340577486287232189357028029744586041095985772531460577088082502386545569460721081018903075968703062436389708600139723068961911132355167784517583231643142357414722624496738490164578725291792330860196076578062677420173690854404850781751571459249965831338761340305509985339602496495813753994492843362835350964682334625811420103102971115336622649739950358384810788018273921788557739907525854397765798882938759295270664762658879856327562092007136298303526999451242241766655879296139553893179259556622641209239461981909675511600761741500549212725270646683577650370481525095317262106721655273629321788056383797123669337634036859782019954394103200873058837099774539817114099140093549094194548892428238182462930563791677954609255502422399655663778563684715055199080754121231069002238669984846992802906105618900678774107951546128634694741070870845481196050079411805228861165295727700596753353241540830989059492796571200679741916744553599615195277345418495443089754866593392489174824841920935901676700501237290891509098813108056139409889674152594420301688467082867965434015699678509624891288916956010527065748737902482910161586256971355671906607140608947938226072798253114429265366354362131538354135082532869585243912302899986456144559823913435474188955659789849016805015326841015480919455583718066904079341926139115749874983882230510755185543584601703736310146940611693898970863859086316494522220674752186187587325300183937527882204327421323755588259558654905072787476426978666765734649489280571422919500900545006138431417449137160509861492972710662739309484366969894728052140515152840400226042792911169691570858749290561590350365795457906957702480672759709132921225813808589025885264268716992366715337872666106000368800348566952230411684439144457710988932936374072335638726380166635029297064475582773897339669403709264727561267579022253659107000092917154818338195920436933475715402965239062887928522212333293952325155412288877822453383804500440487885838331439206608515495094718195562482986042585175842462783939571344549986308124843720850961672779807886909256225480915493123894560421239421700835881692523210906189086034220275463763178002477639003826149224348979489371777887915359338596176019830953066945860139639816420332300347303220048784106680040140034441337479104192924381709533492616589266812348388143271481935384107342068346464581701553147685244082985469406342376813675280670532279520115250254764731685397038308756238328779686716402735223039725070822673786307848443950127797972325152759290541079364252730827760286830810144696485974368376178128827945605027083892846680062567938548647829223683210148574996343792132693937993448596635097904597239732880862961328214220198339671286343022832943887825239038257901914012523369212698411916898737383611799071249502931204921856142723258699422239308135990067695016220039967290435232565537478145832983263498306119936831449961424890340278466218917125492192955526517483002397051518045146276031106601404675516901167807400768810138794855621618417955874886912232842000589809485556128880266130431579585850878925016323727648231741049829888640952271410484128313295610864479354480292694113532894712683569641126284539170450379268978412529010434940073019004660883515299518722891533183650261268601854228029061933040201169538115857121413501996889266664212788470313307283307963819583703599533553625115119782336295314918770317310458255661925120894287657446633646161034416656549070045740959403627650226637026070372958536136221217135022718347742924498814043155313824641585654416052522118677972028391719051974415014322722688985012579889273427852998019093686148061948056615001007313728008710191290836881666314391200138665003496637850630388127067636009272192202688828143224506367590332485240733604489340849920932586040315099921448182439353008054838344397311165895124887812884364442555679526307453890862253252716841392877928165906104657739447674142482278210609855375701754581466009954712911505136013757915572228561505727369873185805346832020539491005590358116673896572020707671497728690222209764361074849314908571652267684960789110912027863996723078225470242062971124261763421941184325495821576791294019236633225386490508347995029914483927612540419240920380313583137836431732192943253309793281728389064403398113802633855971847596428556550991443252053482596693289980699678867233043415025039529232233885803350750380330563680131670387704202070527006343784829746377272680946716266621324334433366216316458624026389308606615946918851331404708776240825946387168181963329809008790330328570495869755864452350925276743567089982488696141506878483786382294351650236873383774410030297676388567448050884633103653272648673183346277551754163587020203630558554133381347428233447473103540463264898365151170346745177968360371168822788460860643258185940433865628928536279341549501213266304307721190349022870974479072474650029831920829450096430365795764057186568289000166905586751264435623611905145123468704440008676311076127169803558647416775019075981579062286870923918143539858843833460681420594801830169798916295495096473064417623549945985644547888007513252750234761451986478480863405949491781348321979831672206054310755331676549813956851556980050192907106081125437859161188035993587026022586490399247835737240756274189323522089356285595512981950676828384014315201677471862623423154398552045834108084508238908294956391809020137593056584798506416941527884377204523418554469068028461927523632924430426590090585462433814421417540841417859013815400003315354093400187981401515907527532298725445793227600564258712337290858517928087657168535378696894985236437219663071589199972693290776092533117288833477870085546136372003764824931740821165261264173483627853423079950167028071080294134555048417955659663476235665891972128327677112951061242970254103519258486419790143786671144070385684859305149045847380895997047744157181464580468743320410477072815512069382090786448694113738856622395905259072978053489075564558281683347793685494867587044444508505280144121145660217659827914456359458036382481357804285964301836248251390104373972655816449660765034001357744750911106664029495459563330190570554224071113612671898618019408957740801413319856381279799009199889269077782152462088280737590690271827029103401377833810176269554404259899241301752946707805812672415962511629946519773300237664037788621862528515285396532420144020310855887327028733768349678858842680457961677732735764342055326484481081948615648246253373672611046409605991738706113023399082260212581751043235586877308074348759754395380821867343109732344221224041554062950404121065687476435213390939325820791815781843683652203660972466291663075275350941454581894899922528450182553405307872092923166971963458988905305417252261680000453781458496176012014123926436180910654234774266823184362074880890422605215021320245197583784457774881588753300143458778841155411779704891772773187082925552939480229768422341857004241764435287054323113591475632707707716430711936887566933675179442696001632844053171200555101617635596506942882920844343860891669391741219775367002390254398759658442715838948757281313144703005848324135545789725784986950849024828401708706996062249331700927992303186965715161929302341135467914758984762418379761444645206912281810425503680750412714151130197940356172644047492136950758400397103744125211074248625305583709340614884612460695162978676865390978985549423208749664293331642868203401625602138881759836140376710925981660095587291771982082538342631970339891084622220426919784915901196542654112533275477952094575313138239293141373173707146387452127154460645944471782925117118577573494356111235999922661135673705183236994155611374526468974279307414254710882515454053200029400940975686488188155954082365962537460575144262469209022271067162865222913854858448738974972464364847489931682249947104627550743228184605056718902874921475732114875261937226387152987473343089485370344716445931648184293596729003233164115943528024541819030274782877246933733678003698360752782356237351609708305594731902411813794396568115307045990117529944071338552547895380356806113400123313638238555878088306700448399155466792465129147529285997584327253285240074554393379524045299259435645031105442703051768148226678843840379904163585762457451906734712470456582570397531980913858276485133495973292965910286319172330130820874575043965161507881948179874438899117717555232624252942460499472621307627958118450187459150428895506516327476831588411263980559613319964056513670832310658547418913351543688633380090188572598527810133446246068332319629429090864462083078124698151243315029281684185313136003813553440330074810900662638289518060577905124572600674750504641503213825015783771231498285163518172251750603487264939376319719568796430293057431235390246319762188349166526194640489342303807391781684141407986182817929385285706777466718945776166077148146127966199989935874419531317313428777063143585792360411671738058632081180127636774262751779366118518433982166440790281808946984663041937225979014325839152449410027935825542509277601278022715479236913840225416589579042994001685198515217541415359070335836675804884764012816007778651240722722010872343836166451957901777435234873116139122647310684347933485206461040466317108134610831836408139172965732968718397153717690916222805934797262897662933185839491198581779250561451746945687774968439174390049433801970994030647675408422006240346196136558658088615347848488924975536983535062392832159357998365727324942026565478762325043045929618996064655734654233870628256154880963060665344347127439594138340078453997652101327906049691832324492006318720345256630506271663720806053249062673645112252563619929008893011825615664281817119926605049173134906426841591567400437072171716801945620840871444861445916662276805894437974580858111753625416509336779145607538010906544975797152107505320195720975099530546266302007306358434835400512084488849730223559635242709805609842751758283378482132407655258599229157770299491913968935418410191381417848425633061026944985234375587587280538044158110218470546203631861877354474813722903247644551601429680302971086518778900010536485723536913110979088057345892524312534161797845554406894149832931583130500929878236885022891686571433348675166801672762121994905449566097686463613721101988082015538084087691334073297267624294855682659333488920717191752804555193605210584199053720337917915920301493435849636589615069060815230733603223870881964004466982553563589325077883066599080055239989355371882289032892845124764088792893237972720988173505761958497978692805480041128675750657656432529849104050056483317187433428919819234960053419525577980534503954111393154138168544099355945190717572674211683985029255444351220369622286062913609968647002741471211245014387894446406872990707910494913880167822322386425142868140077380760056734477576639255760992196272684294197937537209385511046416473233357228266127416849599745542469137868173435216568413894643049594918791627210661081266653325449367625455639845177820788998713339998891037327549142636073752494572344063702055169902186480785542693240376430873644006165533562817743443390257201756101333935682365255379103607980219927056879785490593012972332318442692191831638236189248057278726698124665034478867989801411201742895831858362408258965204344394528726652872645323663559247139330182908836855177226005961877362376229899121251491783175433580796677505261652179268383412980793951752668087453229546848090627171325085016655689547961980207469849660315606343767293536969964689092404938782872738013102940789171254448182330032414500153282291894231460813021020713974138244068159928064141877615998786222370107229306905290830318642553953006927501855369706914867102678515803278844997319444106738787329975755491826012975611025364241211562177301264156546041851479160189013073397209847428019023334623949730435862106891434174332941724414322957351903034501503536279218877970578269211273229925384829490862398018401237781884833377577860570381738427111946054598277032832388777783588100330365493417366199247716622313440727711614642790607694219271610105220789811301252634177987137087836705407016444505771901509808579677091290755890954807170402180367623444293389328443059935024581922104943668724146312768546438797388230024089941112807621308184438464573002390426081959522566950824738558446302444363961866422110093478016372369564372357840721668367106790697694742412421657957147988172476663063376816641343250477102412297795323953934345296347453036399898444498343868542257737647199955415111880536936427048945092791045166874647366781756329741200175180984031491093645227950473787161785703850259208958035649155435859511333185811250541869201350862491513413320405186397854981178371694700893337603125662725847764363060215178075845646848441417220265390511135483733538453920118978675010406937121345627359766587349871881564435875154711345384136854842333593748914863600280708987681738549382517779471477593322577478473656239067158214370677031617445879804809396562222241051191220393071505470830192266088049912033530000030522866553577130999716752994034455122232982512691616195052014372587795453005789306671872817757296931573132340887883452492094094086653069843098073794883433075324738288882316976479054295295488883663612304160227036378152978371888545827727348104338794304025995875455487794957778495024039525595195176263560932192437436952190308771112210269807232364081073370606662884641761443763083512550899993709374580534780567071799142231389270862369993181858837940868871452579417674468048682378806681551985800297353078140937690371091177314511457781658151199376060701246224771229469788615133586582725186634560575388838269940636800935992403923743621100188477027729833559436782696240227647635600059458945133175707547652291899341884008309251805364209762133611065150600332406530823089663715269213000574879919865900536321239649519114874348491178056126585160630001349840633940444328365177895876984407006903644276961573259555037117772624360866952859042154409397343048171483214518464775012432966083807499334543710602954546538575500205292720705212731559388967763976892529329836469690572260313710636836828371803223248853155916395367419577551202489950457558139171946969545617732750989976678352689281484324470499007290521430595283125596636278291848649721430915651815983221780875222983752922709732001405211679633280503908825373387765954919368530868240130613743815093130209695726720915654145959069277015916930819528739287613232390506518404873048410698197721954326834227979300742205911962778709573610270835886134664472674373916103425263874254219272971918868074055658917610391955596765135010399033207444843185480116636452801735594459758674196741928336769435027022695171836200331211089971136482817006135715084514523581775461102917408845696965295116383505619043332755289587657750045984235513862517691013900134482314610951182300701063290139389700890731943160659974369589839734370242883602120052527401259620452267410487167473427225764028912645179116878843966938730678053558210625391187571198613371057567561909947592577250352471381266624973390360178555646090380921882770537570348731797458250133169485662190757996331771026729119949753682599723231263408503143006833278834406729546907351246428155641409221025580131669516561105795195438702077862895331643046958539891768897365976101958690421336474083576307890392030100339311171159256101517650515185312154389512783125327722123018284157179936591955542364540345831223948474204595018226268167679878370499918602785198758505785093507106381798286656242699709222051706660857811041766143080496398305659800942015140905295210544326409010236085584447888167366250199031276096094544360685095923846731189668112658741142174386574009985264565965877287154706277828321213415824718536855368441744348551119299191079377628080865912437977387169063591858036025218012082646562646641564194538192852474332462694317213497904596559070801800536659797168072054112709049406108284798195935975567711548332130417174618005589081868673534352467266663789059111125300058339152557765065435603388739269216748361918073918670837362056956642249959185654096997060253017510220674677328240023341721861981353447378609701086610029237662990041705017918932458479742711247186559182504191148932798249625182942721441078361646332520471843999136430987145315470882996966242848182420475066778211117651647170778816880944526449872218623727094042712307576717066693342061316596542073089251730325528989147858032648259470666121080065063346273019631814988427227157026022800264316858683799092595368924816792386509161805806898906846734692469257188003126224353977552155678414680700919713048962990493885417478989915115365611225694432282960572323410418604606672779426486201983886968230555642822406795132127193806186118810432081354041272671146909633930197531262891872269832320564894950963388929356677052249542244803331595511262067472916842303551431421492968859216798203330841115192167607235362104251856075843101878604832550397301950880257937125352177463163256805624454976921904276127255752822601844864822551023346786526384125608131241488968191745946151285957938869656205714246927618969208801379475502856101116166983625202111061421713889257625605617387069367938940660594212117440095597452016801276666339302090810024864107140924253612755469724303306501009956259108629631705753262614824357059646300305609636112978447076313943289123254276316264741330542766820428242336397070363224898062749503568420820437702134024141797912797493883539675546665903251810928626661426794268652993504435266977477640474579390987267877023454422944248379918865910517816937509485746690761381858104068609301722000055581738017615315842261880257241057586956307615320664529020563167961934026566980111343954143433174441976004024122557594169255997138660179656331908983651498294832374148601908770597497258613170534501079479627767994842345837313947843936343917665058598566120078027698040805908176726599970444203818728711061352823525605824181767509062788661470684689323234663369409254998328147179271006681693191817535164843262792629383595821154745627066167602210031981585504491504199625760196140437807650389559972760017033330226062941976668390021290217467570040408016719815008496992897056815918624810504186911532034183338341922489500371080658269497219928815876734505859029845800987142064314348809704462124425611631356643607251128576376976949618659376215791063572839807130612855935049580964967260358301238410378258458803032138704757500530590941072975294749017146054538821806055856130301612967754532401543876171075554020660689825430260831623386818940622930171113795979618751863602528583300131854301597355518005212803640773415890715990638381677069219651920018699197805955760079004700610946663580150483411530849029855400424490132762111184579791415797215207222417955490656351539137409199930307046398652874154356805971721384820260050071277955653257949326758003293154590101091723591037802201510476504355914077608909941375394289964547693307914932642634218626700085592326571352743902292415602947601594351084072228125600472488546490901968801193826805060114929447611708217065222474314472507660278449174024357538469732916934523391504497104659592640258662053215074445653404141289887056176060239095976428159909757669763926646846202146736842787642972580134818487853808495973026664222028836198175777072689419016773560128612554012415802990917978463549160397412816557611334708120104140713546994471636670463005591644085366148948670392154128227724257290436493879830906957955496283875388205084613361998616082355870064644948604080232743877710206282355110475814531595596913602319069685307289756831821701819071858151642434319490546556974957810201840902705744713066463089370653730464080785830638469351264966624859753218327369684376295865354653523347496879051896591929473601822156277756747732484564633669131803859481839288895373577005836356153955391484486596775456605017540998882814366497233582491299033654977247363469938480389355052309072859008761439163679974013800958267283034378487040137124852206443467299033928841930367132838974734758330972090691521328494642361393628301568532902276024496318420493230281454771663442286036970708516896902538955437097600955641594232113832257921963531107752981999241211960016673407885185044426004816115175790990928335110673690671512771505826156034318687005944799730094141110410859121817873298364990331783725835064436886008733502207943050378162271843805197609402150632288108786864858280096497923657425594374180827529649343139112227283710085536932533067777533181307700494894984912379844707970306761154729462185523612089617663990591466249936597829542309805662178380596310709414382973736101138635980738940075174129007869522006788313797305340236468849622945843991230527078044666913133870530246619190487008117658097100345639674928504337735399037466665815736654054942261273355589672212957327377742509792867534501192317681521049675688868025655453236506568610207849496075329824102333449536486977380587929440074682291276604357378934880127356842577242758108837319089251136990516906962251812206931354681177675961971119752828927725979592090111418601810189621775587070842609144975097381027387777396408183729904511371155452594028365750684314498168116213365172812984317392023064294486873278959067079640229238249380567857529499977963454628031674366896391237418065863954108900897788078811688067677990436279246445166036546908871947766333158227962421082340613569514144253427531700797363439620444029042838100078342311202580184866385099894093526284142770633293077155418223170412080049033912181669687181859757617387706033580824672973737206329852383640622887914010756833197548819701362419464867885894084845576769782621241423520583819802976240634242078921987829961034528250547603818246309128301999101101325270929110621136065459589713336380559128260566247969023634141375604344004621126838465576393186355630716975810546840653467438018871844307528192217798242357285720027052154148412726711015216587839689503427699181268248087485651113785591838237011487834202680708654379349326750890981461191403533202771286679559815748315334530052654536913870832093700375923728862596720954980177383321945971658577831946272013863645150733181852719264092454009061658555803336076630664068473155845242031146146042865605951575341084146375668719108215600897970318206172936786611578055276468690088008208796193082183096857909891023782996216787853813068817998298461488870356639190494429343952716491203984765286667983446960073684840274906977401107152668567593947377489184454278937957647284129073929757067929603303719617388448046146607274488803430513593824586718892575033566593070087296120295814331694602768137887823403479725163594727260963634513045331785858141889754780800756307752985489165986028400184789127613798418774016539727671693401601877054870955059095066565096125934756603259238799926594621348746107573204249497553765745290358003246004727896351684074167769732747807685624420810413211486526121779122292190775889947748872297698660507382874450277104119789735773187853935601449050750640622045687339767122500566492542542879658455267792177163862966200937413050827600930050480917467055338205739808471076043754396363434345747138851375938307643774268716506036922731995465446734984631019048955215575598969275794589875073830983723352921470736559397457300584206441073635654694662472252106942332768383393251132421005321609536206517024135760454971660729366993865715784278315431310338721463970455827667857007085890943707242686581862060567423205601777414982895204112142628727246329114162619586575553643102982240575423974701666411825783325037107266256472886673810929043818440350319719417411641309426891365158669592400687853206093967831093525117807444960082100045106638620641743752435650325623434071235734327979036443635661387266399615710826784307689400486235251913550513355716595529500822853109083289778117204292937290843953746328368083940256312283003889360951564972176692271600801114754999701452557787347757151464950628896930029751428285188492601874274054841574577418651759660927935940239451837142837226660229286511578124097729603469935134468585704035901380507842433657373734925720149300595586403514962390537336518765878555528028205286598055074179378619809460362309980837701838087566614688083561751116017397204949888327078231940193727413498002745133108859892111297798240838832087089067345106843467822459332015151951456525992699206770520744081433383844214332098219623924937301704355638242818119360593395828325629629157623087055373934969374183303394906216958215346357903979330928121025881904119965326570045754850732731926674435263721696940162128641248178161355346663834962421603003552784268324562988615561465895790974467710263514268184951533816444338258148611432836585064895631351033306271152850585701649575537465099546762086483082318879842247548379306685877874889096928180151700871646649837108379739279431670649322842394341350919474429593298088402801376140916240794840196216696866229399978895326765968841202054462544875271198048705706883932444919842075043838917142294532786541518668604785785628012240163784555680632389980374104643353327205212032926146798468256934896512854348584400338964057467495122219259869483968433079796652028704136998776866605900922234132190229825714800960051643903111002458680158883035073584220949705031504974070302531250809184452213760603229299308085946666067509696201048540850270156994188426374326269277450753173874377284703290990607705083785174725657638169981869539589912280058503752177135309021399169802499145394165205309562815646676108338544217337360862384211465888137746958746743564052083259225502595180179906928945772276422724163583316028341082537157199758369877761199612462808884517299624114123665405909882923746662659766148165004797993525617377242947676528014901256374683396481940588698712029713890099509581328325166298856701170262539275902714693866441638766913161630634135869307145779050371496303017053915852429565036960691896616495345775456079955461063595592407838145933285405623857531827711871105826490005366815181881698733851670580116659602355846818258390880466952259487986120466520517690188615774303612713948538259435675850166883150967401384769786538881333040908642210064740170301001759703049264100573169520412931016936010816901957149541712082984016723429424961185632382529419274300492406939827943410734091168250652548469876886879264675321408969143580192082106050523442595946593024801778302317179924301704008229236058644663968199059233890951509791709009283379943662795768427188949713325132517430359165600249648236415834283700516654650054739143100281216769841160008827810056004809286569808909080111271431557870627125686240420277813176606171573619899958683719732062562994426359417133490352909152443689989601882376579235942401781751674466929155527611676154289366682172841837490825742589182492075720438915662668398546360447255716087188012960385398305439096603805981976626167245489317769749444908678845002200165725882130581086645699155238691922602289170754448700773310640681479489312132816265415400206276631506905893038631080975229132858995055224039250089388056534075858087351257177960236533427706902447117899569182730299811574838659377043943198490617390963922951505243862603311632278784772950403688002209885205462261555398680110135100826434129511653599410510412030793388792333172782763439435446800266395518086936127367335277217669243176109924974653782217164729933355542634482373001206482050324116442329603952276076307926432813845882080565065400716908254526959901239262077488034589631719611936788653904137551646961194334549634697807131281193093523673921523583100890772137074801289216006248672746535041683310214138988699807545746223507268946790715012028704488663669725921737404362551572099878278075184486437431830404647465569921242280837945057924556655721748037947654483019234743056376803038435187987816716902303100406599007340706018758885069771565591670357674890105176712492920520411011782251519895345675232815633163917326673030168062633017049502287405343854210767673921562798847770225365337913421611891571713444720232090054882234335832884345446212049714644485296842539097336399022822978095631168472831609503812293524017075092268659763478583027545765149431389585741988314719805119918126268917686126338783247479686323040304188360778747581050748299630821341118169994479315577026168894849451370779268661143744447751427392383582120784565525489046524420390606249302801024252439440905658980312173008801561643775765833055544686860863682180380041650502250559359377437320134521690347112146937735706189589566989058453764049161339336369447388013916642723523967013011994200471426947645696253561169649302433659539875109312181508289410164173643808182023573513584679063845457659332773301914354965570556233303664382562338841603592915203872947939342648458489965902032937280698802527151545023291291944252189673655347255399027146881316168852743642623018498371086893840174739826010889770919892695456115506231513681000483174324549892350276894066735737089365689080509583541074944513888092279635911161419832399845317281302670263832725470687936469917898114512647442525572037982677404745163209242940679880370954992012294500665054861892007742990200218390117739939635782370705344966063852824583805558572946691173414851605915558695050098459285390739566671351767141606833879142549079392517452248594714535578992566415811639687361835439840151498044706842780819619753534165429498538371227671264598554525158925185404167905977471749932261477084083269412407803918365502142399304773135846132606465400625228668421620607997320914596313270984492133608380845086081001240624713462760124144651389208568163666356639505227201362558239228833091166044400761493717799720539331607510414388706152460660502114857208999793067325028663316337602649655651341826690979887864256898850669191695045258301820656573825143715548842780607350163999766517866036583513060840218308343431086417181982414762208142852458190801378956080251253236451397844432659770283583174570866314727017099896005307338488217288717573926570679679907002388830610804119933922298099671880786406016240579823534134951559214136405788365402013858336268600347995906166799757904848955337058225125645634914371181688108621464149618013683001975514166307883554056151322750573422264181699730238677490584992784356681002420021753707542556223120105496267495711679487252434583582722537762480507197016475860602820960534337145212743355609631620317831472006012212288897240146254188156714620862302856349795071660535271507679921104312777003377724838821424268517751958785653021040032423323510505014069582477400709479244379642118738661474226668201029907741673953563187010271693443281754013937081980176912614886840329374908889776821853234061241649265006649314662146565189334527055801961351481722627406126690234924527538235085088409178442362239965126792250041936958146538653203142115754641041066415825689995996188732641130588524960929015221618168134580331609338404570442953793664054893073458265125168809721084995389292468811471207062164662588843783845086169664648332511210978460030860522700619441437316818821730638242707697272154389254901758127331438335030848936630578607479205980366046001986275163977577047200185482690836128410806505173195212169411720906388981251225467527951102124711812242552189962255691080922727410618890375169972472832416403050397070540295007365602440334114451726062908509449096438014226972128234806333607831740840149653113688801294282505317644601466676904180792072395903049211335524827352544462643500690888147616310638306490435281044855188449493621842130467829569803719185958347694215264877819179792290743561698738840567329099847282885463224313534600050052908973242190329368360068817980652620678798779682135599978627307099892794029504403077159407211405578738391415095474417048199484591629249416714601855022342921707039514303727985937875685714370245700958119955203224852461953078625709059346347796221609537236867571415345045123257785364493432254454853320484954657736243088727362764859010117813204152191068560476074665069341355524204502644708590349422814425546166948749860533926280188061186634401560807955183105641792251228187873184640126628677035988040326330537187811215139710312508628076254054279857629211455572670845090136088784185319395232937889449243367985519360854587432794666536261106500079296852352045575203685288846614939455561737141612956472730306972170259165908435048289861368639625321408895749336930060946649536668811513861235487490904135291956567422494263920063087171280082160318970639328282526367175470621974927743331966301464034873854719406497114306271099004874377799530249792149699867931997060736576824602437901280080977301829185503725811951086914075578415562029756172908036983134445458557265237118846404571981742264034301680943433611546021189257547968870879754266688384584586471361199633875091295102061388813811672516997419768824022303763462426845260859347002893051886625571845584433751128568797369545807546049948082883541359750977578719708197954255221622289525484926977947021949526943693908887161439677694215091655087999315448760412661686583753747028863446342666730580486124577696798028430725055336546452812312337918143525406336289849992255038185108536005672301065612192236552238685642169977917679929981378263602125084034011941890893263464003584156936860825257621706411604183005500944730194620519498612134201385274751890479372482061358909912490252705722666785583812217290208771361925175026604148522404220908400519056576643246351673174533489850818251425031871877246186823860552240531736451742988891562011160387035079262391981672247866301624845449278327307545524715403220285098484042938131731125067117008578578102583989164613480232420489865854366189802563160683940110854276845016553597540987518801344798782522632796580318678983029820420618716712880750708209504720348673319795532122541922383064675326596696167311793645198502268793299875833552462392813919263149335291021160983867918485700975591485450042055297268109301510872225487795013723562175878429423147541275974213374191351475028934810526232041471439503763504743900491392352700965866542385883615865276916909720055459299489012957288357359363385014113270477517820967158006281715029950065527610841563560646375161718796202975483474008314775833977017978262968566059191469963301559927371883107296255801969031894958138035579361548617121392768278773394385286558833571663505877186110185504054423740803875675376393142929844678182118791741909323705035764143687425925636837945875315733449369085476070362244418556421864709934640688402368818149365066793150819825076846201227658566184532168932656483944206605682341646454313872750972243709092570594829250693734727770516311067620028154358350799657845454067967384991061611956455635689016504624984380574003364210932736399082085519551896170241319488992137677886772864008180513156110497595353057060752874963796672649519105080311116678709911187776331185328484132671361293891453805507667544003073561454468454630077070120212900338423013148593334844679834854878820934488073016558170817066185943065560255457893646136316224942587175627951167079813553540878238324065806943531453042386413339486236982600689116602138651557676338002384780400003616607164914767643880105207935529152937149607201896357427390836873357548030112215509689829192330576334006269995129780755363458807104743452421306416842608151504568520156490513663506115692598999258372331953204767985256185610402461790414661360341490731604096058402950728438848586678685973318966022702886242667697442403704576167170190688903782671426445407071365277125959482630781457164004225864925316150604677243236769710557157512742641918817167383011851866554253146246933214558189820259777310894591865003642860182705322235828422513124896396388695076161826042648055539446524156502123688002021905635191681531040386564696054250923976993519649453484684977755915357371188699019811663308621877563638864094336476755000811644517690566172695111623266492251694740915665260443192466099301683133290809141344577000284086066904304777736014855108380975426209541834396356052799260543847114413740008434781261054425355124914762901384059335525690428894826133320573373034453442319510892677064400876396018824744881974709091537677539270719987530130690511837253284621446760337691640781481823993510317751176516445189165160581957208318864212858268241656796509240603946576100802512812136584532388718499017306223760775009251763589381756857689517413140414451206931059213275920859364451741911986999826415358680602010156773083189978036874403223134121339830535209358537676858268453119777435456539067670952630821453817710741820144933550746651822874255355991803500779503931321635727567606834148076331824905875769654961315890091003168611418833858021860404407117232840758261115132189666777853132533336050893401399358214905658983482207717513197440992080770034048167498797219682120353919725323458062255490787954708545057830269294041090011819423127941767248138329304412567546178158892662567948659165579959580250141686225027380223647452980212829032965921370960678603850224027273871467983103620287018909602229953658993850863795967803641459479928108812855458114788473063750366307088873913846222316046951183545050848908921086653616661086240520269554005159004581801772870087889673993899822898960457650756038418682101643248537565753807145939649901352246050685350229960576083922125125842466005734967827636011680036510993573917987394021570889847790698921459044197682889625330839886713612426722618720496320924818557736766308088376042188803469443970912794337006719135772896112186961040722458320910365676136238581619156292408339349717788799718741448675650710554473311956433279725503690991213551047764026449903517735646162858355640000354789079933645224786483403689612311592534872535149129362936142264836826507114689522694216401545211503287308070583803213291055041826903215948227592098039943817010144568259670916858154527271734909027052609468354179593887280307160571560000850776422862947979178190138678806992931156670138267942681729716106887391806640087729715176591377824720974487802945469888383093434451562359444896458381820855885321467942923584735122996805900639679802150262933319818799591745191821232912664147856250915979890987878723969816224053424511510547977466249248241968951102499245509003363768709900757134292783397025259460460077889991464463838519352880159583808584902572262672462120334852903932501916341765169601969606324682211611264917682871190775852554595954984115892959676755102262303578104680191909553366411309454897486465422277115222917881288733391468879982487800239653914438941885509649712727771692583148680475578888195460083125822115913622774345465831106858266796138875283790807324746373484967167433738829253391671236135460654320286092296561080934328466463627260851245229303905763671280522150791045776000337865646299160421532809192699382238189635380996843560135884360455841448650374290915884742412044128257931119275954396155816078634082383379091489710101406088715228787335139493316312489785577233585016969909228264002852307973383990696134266498576122885666665670705043535683836833894099830218173003417415084834360063399201506390665389047897859439156637849003080537749981008414542164995287621508056171871625702489991036559180302803128949085520174872489485902027481342833554481609776346319087377751255151403399742908690011647347189215012993027138320435646152816864110059212352841041106969854321708183613630458855213911850466696257633736981923245215426231628462921309001472615169016562219631378496236197807262896844627045955552180287932716982034506296482963531118830177268470294637908214049700270439518810903135546081606774278871474143677171443672291769852808027422039173803575133496850355690575828329249046055318940832909432206445834300492752847333715242995261932804185376268682878144629342228359899928851140137719240756424214984889819137405772728761481857736637582444800936796382541499849163799326185574915769371082171709340421240150618143825683918905130369438392665168081477367478257321771630444670317088963325501127157578522489475305884817676202962160173104467740779332443417873136006296739706226168042412854259684350070563334056517577725263535585675529709670593203531393627953066824669223388210283813352996065173306691297738979511499916130713387214669386464719878101835389635671942251300625303158151210499424496178073110334888128399567140111162277660204869885773924497837868083349401602915625437161603927386423148307332806537918080515090455398704436882093645736172846756175053968037049254383770156037182937416289140301362822311364745400657509880291312529556987870606654486784573257041535201533979575795703702047397408421565084950449827546472291309714032752118804700185589073005429271581186794575387114327069014392726456430461314822204491313545818827578476593176386845905193887435846498381801732203960433444962465475909977047241764982159541606446897885026035282953793705307835038080462379977733258461745156419097343729167184927429847166274288774082831682569940493239832070094973102236978109715059792538800087449868593536914465104034452433351840548411609642614836052785935634020613888757243346893098084014216537602261760590313122122286899346007136142198264387313267945182061006432129635028751685727826677570124737996348938777260406984081592953296751329061301031049208398270642761498470864215118439147706825891623158794531447552525340472682265126432492521615965300890716606813437216569717686299251419188701970584451646655176827535859097220860703573403368635555662557206286560965397238213738414557564380146614849713965050975307243449193065760048981629211516385064371877567894603631349708238801447628765342844733445580792331757594776101045379880263364869706084341946949343460407686741094873675608996973829289578633889919174976733208505507778008446990847171287724624698511689381817269372575822929837740956407939933697735768972915105941067876147836195975158821732997887914558066876367707009421500472701990924360640017813224830352863772518120305562930955409877730367924192563998425154046222977365797899454045426076530664125558502126030912441934076424523255613791520206493437360761639816580562487173662343689584915880860567934357634925937971250326625594074951261904336557406245027050071196059133825098879511544230649121499629043524479291717931202938338342839458807724783674252487316896005885819688892869697336030744322219644433792392282467970247716618131524586189173826727299065817390910217098528290706654190236349617368738685241536513127390463747062643200221692209810407663833905570836143126437374878411343248292921475732157717378555396918077127032501436892761243971513253082338223877953015029623126922163403005902122689363113258739581795866171131328429249510730247986497248168841571655206175155180068465823359432658828112467846341991035419176538818491484217071832105044689931191297239732872598544026282057487134073259206946290167082670426505181580231388343567427540004535280264369691955416727150378221378608011328888373479896689690046772994505115568014949485458956062946826003422590296832231205473514656910247319355049241533149535520281989002888515066093210406836647753407652727089112965317816414288310366824680214958485504600713342201218211680237033104241666608558836517957964751288477843462861534009682247395339309667276260338881156358690937896686995414610533061876987758280360533369608464512959754016276132145506227499946480225100055173441351394573794660103488798136276943319594060194615438561488204274201053798279753096074322609120708723883477899279639202798171827403022931044908759698576856534863258576034138413676435704125807333635604743769320588613576012119730498610787800920842397244761215944232858904468229911837931621889294060732691147194730233976487365951133497246175855614498216613700714950523840650486791489027997612373110362470423785155698101571266348822031372401387506230225643685010464301810262322619667753134054382070941318716437728568010152430192490509738502032127606094411350438147309293437106021386589466353062786348891680923370906962780191423628541438926777922677380330268156547380475224167060056654495228809180110777897665016602053177037267587810547053946343631550306599642750362838348467036415714969271942155806318246968751055604753655634169810147660245975442010029426983925018175229595462069554465104713532085085202382972901973297717590873140134649992733640567875327268237885004505394013451251191528677682223865520229927352638168375487507992682123145020991381651865673106026746047978558247642919459483856019221638343293557662479326029292946230685332622224904352508749470021056889877862822003536084217495141670626575982285403292659985483319066188918085227995628104662577653578096225958343254620505051821569375476653518628001690209402488628214117049322573047398434873039661171292479828937265162779765225334783510079729056177007414315773524223345234973218748541911714870189868550419008990035199940747664515897426457116605133145100968170156674488875712574820224127015828677939695438674634296086313514750648425338007938101283484093478362637544843665482266727686867028055899587234916294862312606189919827530246820828614295046805004861504630689452676703201289834109182988809434361940700621152175896757702392758526657663999203380266039130244172004601092906391035519016027962733972643648649294849445163926598607524271380768012925414472220178508488002151134243579490446477990710315470283346092207330171996816474168681960392608940056176049823588981321505111109938072666180556038066760976106839810481179197294437727836454784127870286932797020133283504673293106873085698146756591800915277655481790158956407650424929716160817660908302298423979036518001429882211509659307234341569100406792058156521763120651856212833497160979652304764226174159897318926903618276014015064474460034302066048421634351133047799346540793052789075777068492942132139176990843914180261210049929692602736402566328194194226242060183737364441836441724303287430877598148157812737848923158053160703610334576117585522433960365688509058798589802353007325200975076484645153402168257092382618204943339963401860727402503544914642168559656808329616814628483055750869161092918365315375030375040292547109626105409718081922906637448660806978624103268323369517338079147210025621847452996299202775427176229732842206767657626045629031973993096200393056712094194601363781773953544483199818490433125617187501243564705663632499678616525675214924501250367807623675371606322502236915636972750415695857910078166353642193883521836025684720169848341917544518365575647187195418703931438181437817075737284821866499050200572680799053781656988426656846425014716944836436313433488113074696609481983389998870168795975930924394656567171025670030091921022161717962652364636092701678117224169322322597945041370022494435900606844762197988931149592144651747324932406903432196187549947255397542810856925975968839004905548731067754049130622351089399457406607149220564746607850855607586947043514863350714838806677320781462758021893065225466327970922586975809699129287207667115169186396243201568996471577930199462058103009033776583334796630150319698157337874460938011930385268687834245451578385599955214725822312212497601675557867235443101309129414192551750918682443668630069795906588445239683351544164870413505485094667935471375922827006971388216349395973734184271029482487580375292569089843635862081299459655938720778610573593180471835383300961846332033239767317954324370718915250085509068714576209970990252220362097340569778691046582786540558509265322917210389602898084218321611932513145690749371797675066229028072790068712453541772273334254904342408249959389100744962737041219015716596796504780903397077751170808792078213906628815834843265582099027263019243739774311333307144252785809346361237747641011965370052519019978650432330931806250568535586371538251529978776317344952404161993544799940681136369064490119099079131046824082539200153436339821010446628550934615154982496282485719338523932559616392291241227522185193966594657273841613311138865111807443552720078945041108539241551820051400283492632900788443405345794214416839851513353372766484898906964756349534771405823766897618420407876729597052983005730150227837810635834078206179049902782195103561926465727334878560999750421360872635661110036635653427216381761865664236774854111271696599483053166088255003800014154164116257141132389879784787076134974411679545994023412456363142849786328152499564635562872165906682492546411614932439808696146999159151543256887640962586660654008317883982850712228864736545579951682673060014988965173793151468714051093261633074546068662228204104442336824413962837828620442919201806548498287049434634772709903584314213596096649040483634713830124859164118294303291794274920074132644554200438094230814205799918830653135320268218663935387675985925112648380033392638417656397150541711954805036101896084778088577118959870937148818170780127762902325850311983961583205086892610663570245220938409226622899432484260114642524285493174931620690114974078277964426821437656419235063431652711918182282890193289866944627816639628092710946036919841814823529792497294393317834605208858216813894005922529566938148893515772221720541433706862660319002766305907856510535159720943606643814705335820703995464604461991188408362242161113505563425602020376120664866354699169541654644758142323181194737820923464268076469654692307732270495719990617090312441264144256087318460643423083255375172757881487486608037478032983828904073534845581947626411964721233442505680754084643683547050922115968853358809743560550704774725791404534524591611364061094056235139267296421718610132326651956138974527564374003011436059991693764953137619006691601712073009948263036229376153148561963003636797332801020621902513590922517368015983844625179514329027603351325434679193877264582392814604455478302985815260356183178242930020273186702551596447659579335986051103493300860210694026782914340248632592959154977233202730221169693077208850217893614764118248477978300306042530015913180271275882031225768258740630329722306616705205208855306262756308590270539542002332372835352918113570103635333827006181504939202258461182998748838865325296275597194343693662761438916929809688851667655455669688781803781436086534783956150209788028035508923304034857155215798935149910561453328192459404551864093370736739672287110588885365393813057311113546348719365180369554569303456362227066344917323298091759172096714137494090090806296677063189534680590944653489239379523681167052195715060217419471298723842305205209043553550822248731931073966820658806893097416955995032322285209628230066277106668691009093330196867690743724750214325960683473237029119070343240088935497987285389508263655276732947795339717443995223542760801168433525894929954125505917691819365784432339703000862333682628360517318942571488958348488278515755909364922265230855619341505545740175694287367809128596508325944829005134325546254776591216707965512737888674348476740664437788647617426238643524999997343488682802629980100550538859089436808775923051667809674294557735151536602797006692092118500795012217733920918636885107700494872501764086271782320934997303237527176815018971893161133492613181335248104176404921600761923196208760954473882181695506427645238475295133802626454933944118694362587127150776577755835548276828079255864937945853211229187587891965719913985566781538432213893417691509711117651451085508636042248534909124188885714224096868739493228429417974248684461339897461270094753453929091830249393151736483187347454565938190688898339195793193326337259440525366597157489275860142697075801420073514343888067426662791311337071781201534062932698232639214506449446872511326905429246355914338390428633544089116973081575196135227994806095366515522815285724281117347344529536588686781645032249645838183822329837949057728309776698239459616937326030180861173577665663020862202685628455132317359439999943599073746411640135532328674734547887275511580786887270050443920777340626797522205712595790721157005928459351481827803239483135427695834900739997401101263086071302131710111490581060715209647514142883429205103575129302918935615037549807914346474297907665490155121577496946258902559849512695540964871914362631631462836459150168473338455875694474208992773921719672385021524913915940167702303076050781077763541091639736631217843009057175414259961990367284186464484826938066441565802403914529096278675997877572096967066125493249560391217060121042122482385738482737325898563982074628269946532799743994322197931736069514396596057837393961389096789631026591073001876385677001913929218465550141326352092989698534772278213488100990036162230255707950227807512501373930684283476374434241327724055993389989138658013676094879418277617015049536535388251595243986223682039211747900425521567271114328965653949110295713022045110325497946674687646316731734321183225919994783824568327451392390107345780985091095767994536495675337004989594977377506070759697571565428466713516346564994472857204266083949824097949232178913956024712015472171430234767613271726362115273259540070070500346749732380941191824917883508681023553026038193104327902497301715999756587638283477613537366708742514164403556646211577197394524979579822151923552537316143230317163070521332756186635657755909346627901841859259790746323035864097884461989065473732958063441608947086267635610711345081308183533260390952175387246462970462600060116662902537392314040227605686158869403268135928346668366438357334376462556698677682847832435083229690031094818820980458338503047523033383846060995728802884145565795399647431304313809493047097325267995500753823371195695055969809223035031356702684573884890984654616298858582518627859246870758113299538328122589605597821106441434123211771806622824907361789986545461457881946002808947292303544778087114489088039575778347886930590900504983904210162183055511213456334207255566780529233310911695878862238553858575812982797805759533937513738208021092435161486149800439355615615406413678106052850294075968140278466737498569069745063992319395832932774529904172249227394049179461583306344296643960118201608156711911373072150007535373643598664786170907541911946151930098691743101218439612162048694633012362454980032248657767933031830234876140515539000437263868266780554160596946393129725706360586020808514082080444007973535253770670305048787684128911304017331815468728383368819408297870003336250509818263491031647953941482508021904823330964963759411909086883768191907393853095502730111183509853048711202175738889207341211802835684579185142345609634911765444966574350775649746725826042107662660647946007137296189378143368538965453619585522878047049017783865865267518074052627972935669252365778576493191906331210738568733114039241949449028872430922839792611888587278839635354907704520067330045310115534154088873869255835191942209978342295066735006979331699393680822512488115351872295202933376566579560842939540631411806030053325335494469887433716537635851712500640950119804864566101060831794790857042475283281983279513358530038964497036548697573330193152048254738227892596172344264469443166823358139916185899126215107924364774291455262112813944143926040607790319406416990953905352482447641870179136636222455194675886563046729222875457561916681071238014715492287436936768337382969065895755544535365620208167629643075187308678543029224060560915850281159337986494974256465396050221848739377554990748123355396954566533223589135691063033243194309302351278221670585452531195176012792869775482360741150067346820232637119961133866828299707102605153190284738039664856387109241733086915885691145308898633065696088575840882808319815949105951733497689664147417851972141935339910538649035106141600557920028044295216767259660525887701867556160922954625336855497089442204815412751715966280382905908664557225381713056019909367648729035201266144878121952795242927477560226206987473606809226870338284951530713645579299828923110208439973538518853981804589318762343024129166233940343276575690182772346496190878752360079043136184055652976608170456185497365580888750235211210554244054981325982431935655349130959622249348297153561318879107915066394667777021568952405793590667520234308948709902373102553717479988481334357989894167062178195575266554930194364241943366650151672714274859623145128174930597901146526442908745027862909916940934544404825736458600978494095749816710565071754775225937961605891036082924933460933936110166122580002612706998519623225288738700690553130582701691677685398188721601174988704632455684774153970814157026284790834516185699461780712394823995214937830604316890286095167799444172166905655236545767168486861324400954428295488234713867128934345113573818164032714011793063751992766137555340917718074357299231734228021003557102380479635717162564475287102472436276500263133087869597994884851789977474793323272711564926895587787437484973522409160534823873078753236022962371274144938690498315730108971159341739139710316481745551938343407922320885422587153931785959292017381616406224094278066211017315937384430173019933236898153496339795897495865278742995687194048734632159696380115604715746524668616732762694265439269564269765196086131612379736289165296243405110891229327422634596190403452584580300120154023184475357974572810453152161304813060037129495301244366753238835669090753595175970635304473236833249646852710976011198657782745842536417918567278022864247140832641856555441182183915735239578210791809075751907256263973830049223626472540076343846868750431502607326499091968581453322167394099194523345636991614863147313783212182432205850441785012244899443383963310963558167569619356391705358612105038859699833681623750199560283013839363569217685380299741674206681864289001952737087353612197647943021077259016989983621212246382019569504749574639128469093678846047577104997452021566716066955746762945575539549436226045910892118765863486863179205010405080086383367987636689158767069931861191921834242033966175716198739509481188802291996004470248606136179264901137092625630276604624557036448394736494162064877673380622218330183242646369649605701090974857829338032576807313672715003335548460089418864945662577050321100630127692819776235765197873353103567869265689375141170184369957174613622063459224648415173157938911204767563383815700461917276139248146608221872862181291013347382804279501530733520317770735886654573503415659392415855450213314500042416242693293622778730531041387353371608834744541256953693320244040130290074152914348931113855518798116671391196011789462853811395920103599473003428124843238970884957812718244222603494285452855337498392927793284635705777316923749348292279054975549595481464038837944610124824181586640848795652050524683281523612140393812418459771169219447743357670848088169056872651946382912401328572154113473938747122965044952608179769295267448265431893196416331422317804799194694239491406450860237227193041104193986806334510172229202887832437520284384675369683906944042371344395897034540080529049525688101554706881534412970213673153750140109805382450722914635003562209838088841326052183299009216343432931541295480164933606574570917981433222066077366684409548654581710472480387561043189859382851101135744768451011263311999160307993637397088370544520979526777465169649193635815278282645928178073218011845876004685555767702026772791660202693560538955226416958487041311255837374287452337489681467702107362967290937409249780726904829287293492976094841973806446708438978260188536699837885379852579763913806397913971531692938593201780222277427063953292850388355549585201289223440112045178435249595629058189096097341649433205496536326318843623646972624076965075207258691065822628967955500373883400287146722629370912740032341420584087709275776593301940778454929878333325581991599309938025525930101477222866837343284572855283727604146991602945519590658559508687886693326995832175631721577925465350060864498082216541627686348453905870261561614869140987258525657724328375825109808178754587324632544538470776462222588733824404030905653671726129502358257848829318590092109880520812865193801556025093155950333958690678040743196529931843586803598426462313440995028715695069477395860545639547579281926274413863735117756470146457932771277109570648648451167975492144161567429715148237868534436728838079758448721133502574299010058660215626461012528676664737411383777901441388632186387626607476514822643450426537994348827018349750208653652292185176275330784068186329928362267063232473329524984254564680520576463591285598910513123753710259753192028832925842193921406629142476968652791940987158560249926804567316165693865480458459501150809118826858017976080096896435402991923034084751293485135410297252409859877041169817491653358558825915678958001698911897381116775713725112112707969198153637430818692923917276726747109149598814292230770649507505347274132107569684996739874573275087452734750542308207939300414524498891972545920724011380237955352685444752733125297112741970508362754611885053297251803001250433039026107386266071249463253479340303368580764817423866974712840792697897400759545112364742910595502669215171474581915868185690543298713563903857561444482287598747756850705866990970568808123381069079640866119040522636899105831288635933375985292145338663710865353155361942609147741761007062297331729396481106539706749050256330516258051508585518512039443669758616942565658833235873002812076331466584070153239954967662639668151416419360697333320637206659689064610851069017548502122097485993675716488579923770601317625143303516770008968376395923536382963462398920749363765377417471364352242076110315025686483422539893917468118656308245078491546122622714576509854084308699102521666233704041892834968524329719345419563833697430781891641653685340006695499124514242214694911657815490070753350018818992890890355530702896571344538920284424608910409055118151709600111770373767914448193245632330645594363027949766494955579609099517384051744833640773238467038516506410517831739705858477209415373337759876528571435801737860614361204125487374560926849214686355573351202440045017885642517253092140078735733723461505320378980476208090315669016395256289328103719696951443009934205796221488557358659439485467495617459875635274566864317923514501362296830512679591052247389553150480627309974912243630282005470349643677461266900284407255842537321349732078584844934208323813275961108620267343358449505350984547647977103797190767849101907114257770778059485651107890802340775095840370249935111660432188921722461424340483932119376975099768927139663966626336534411890335993911081072893663990100730388817200877617875821496718765891957303342789926892192855222598893829552960844994279180046098124890615803371220821993122414291164899973649715157588430070539234694205946150546996956902595990203617226535032621397742691271841220293370947771558533984743641231526964962555363871852420943760715799106297395068970374144116487844989753397221315166140460020532295551539602941752119581720024385525823034602713881562745266055150224426196857178366927937169953711485751647362626896545958610359298172756454182697806828887128021932734287995546051951599708211529822998809894563631201907356689792781244683729662400955465175403776174693762196001412132161305744022471330019993481464426622819299251899598204110769047264390394295255866644099498560866670228961367039049922278591423681649524154633910254784438106138481210115056798628237821937421743767671186296631078785126712948607443317013933591120864650709116173015378481583736732574626204350774446742421412591487772087780490970696797272218819106499205603334356189597590281613868040136759241376580410512315912043529704596184409119278118093233618016888132804727313629489410876342818660098619256593010337516868357458138855223513141497520737081604074347757104806081551641021015206650787563295621927901105749223456378876199967736647968361376881655083635534375864889161006778791800880100647073047161137603184742369875773603907971084318421893667167196214122450055500205577380898514965623789303389270277950372854165795241850159091269519110416970217911897203225741204469524033351944367121515376009161851925148021574812394094527998769856307249183642429429388671893681548664344946312150599649818963969995317237641166295096896074327458688342561921103842254541012193290773956931113990213483005211281796718209444877691585865894068932191509146341882307625887013984279378396481681760552603370129937112973355334311707987353624181727813007832348094371785274532855412454838841964476987492292992034469370516708234011820818893447051599489493067391791272768143541317332825210234996940192908726348137036005981766297511784577991174809457209554900057987925097415717889306636018022380784005915777671018281721395317927181530901422391576539186175341484116855794858755956198376841863898485637802747886385082785951431066448921512357014463625782880411342229643010352837991417835039806504848995407459350896040500390297460521796755416903974844919843184996201015093162794920616648414756237824058883830050396014998544260540154658875210107869070531738519194850072899774318190638973464329776339162920546272788617696973978443453927628186802418914386893481978256913776233373811524878989297584025352776330413927838151708570372865446687784909745339531803395237379326376470242936171128436325589553120175259286959510573196428644560012912375758372442985936207362728150469773233920538449934253539934143035680785295826280402924825027785895097473608544964974659672633594404525942196015363205211204782617832190144121795610381225462690491982822056399557551113374760039992112475214270480153067850766859327063031565784330232675462065967531538716988274225747629978874388506716696250728808050270881564652062081517134009494151942931140097148339779993494159527302970903288983791440449660477522784787002346735282353618385936035546272722657404086416932927897165415280449265292513022232471167427626027600253910153775895751605049787164174412272533686858865317175039061414024280171870886568362999979787056894148932392060665121923774110485972086549558978332075866355356543883746596347091930348093485681624269510816994738532875153864018406213258862957206813902050306262409909466940508561298210654394411751345882037068864161253218319471861340259362353136076239862111325786452177185346625417026293590930581982041092415707516050050686253144910194833325770646781710483833039721117450592027474795303786601434773203884153939947430449027354400413854520175286671792246102782523521334196389367095991146137848715300655245366602188201433569021081881450545154421093240962316019201866914778735151845879659425448404143440910366782215147221788875481467958331842196924869402359247883861951432019663594796992718525862404457819517447727458223789249103733769203319935502422981185421723209470447139044194732990243825397517742412061517434708636915432412099830251404487520903696852542075069690306231836897545258557892955871179543370454044650381484324416164423728887819831716080582718462486496535637340577429823546692978800605669022908179724655486998786893814507977735556692465719565438553440409649348387119239106944205889922436194207879837862556293750417065309844808280986297213247346872796771156075447424119525488408621823608613543993303071581800537604847950293181246931081686464834885325964213809456764104571588088368274784959034767362548242540452623780903317964916115979555240841456211938737876271899562057651244577323589163238468352821218691726257916821915431744054874823328566532949767353002757727859088542582478246073279523144459804299911048694089353752186903615847331275844283294852316328182694808215964578440955079509857178702247847602070129087183590445822500080999865711649515135033859740591873928479420991468038235565880294956633488743460307203706351155223291133326454045113088693888289622922210531153590448234588913017216824862665064060931793211707558585178428825394975828313078258449188394914955825601887867295014543723084961320098217373012483897536296189148604481734198805487868456940314039194834782517815484583862904600630774909134669914037086586064939673970186182510108464474683253974882113649331645569293952611123255079697684941409552267568404238356478810469685550215541642022191682547928600277487891964652311677707837712780964318701545548693888711389915260834109062193405704500275967045420119448053332849837176120402561463835159864080845453535672249839304294085030537945815084257327749313829179234387363505354999212874669056502844025203057350082263367046762249241584220084393663994336465976888279147769716213651111998194696915483247787608381818491349892434911781146455775005137452821120919521552160070784304595052719567046751014831331074991469646956574082192308617635259615959681349391474334292111483434197802390140371606586233052948023953391528921777487847115048259206425188778173527365860918510899636531912656478429395335462737359908260791033474797364955936065469240091092405099117063496551256607124319306115037788591420125512416590413891409441283028328779708209730709033120472171500103737599263739979063644657456224304612636349859350876831130744268744089828181043474297169433066722233064018776861383298942047341906213857660093111082675299972791101057561315348332578397529899689943448606216918257500043562008637718482393966661987485651693473303094244871007962095322056110800374642787008897950723056341823142768448607948732506364298923036268463925554805345533058344346919973514949141768079727963081733410411064479797635580648209977756123450721044237432440123381622630164369428477715483241858227348254462948834836044045395308997421452215946198071333053635917040924221313088681101811102880356821137780087439291487059376528764996188081226767978882469308102661585318619267374772586859063362032520254822579724340209968980055305560924108725109750356771101684321830599789881127567623373157330236978981176749613660675954858494730457384655659214205545328295845478093556864591239375755856713550609876385783099982535459449085845116563313716462273602708279442747243942343084868555030690313022912011467896530582567948496808306537937872145245939142355673902619139418596577894314656593376305764486212928540813074162159998927309981000831536076278188900276220388085319885342532919346961377543951235155682002567174479765553526009926717709050971560949748813722840497457592703877764235957205080455214540089364905432944747933000525100041757449242260494366501194566840886021710242562737274541212119290919645219515031778077186137368880434337043382989483518170398139596440522361220294696660581509407416715411824494409486637255655536181389977732682278995818667347697802399082113889073521156254070816095360641956838504973897851398332858550060022171791298006550793240283082883029235306107352435694243657250818473051356115838596104819863063266108185223183792320939351564439031637024695444893205062868482099508953664013844748787220336525666688849008546332252249080116369730641798972707767725106409569692987605378929335443930075875078823832091770845125420355427770872386984183674171702708558795583015794677481710450961795096430063614296440227484934202338483606461383420394747056665061507364398350791271807745573807581161304698088189167753497514225874156871820298107975838019901544008727001902679427796330921048933510930409802646083246375748009650847459095028984439504807466136716279872358142757942206140895105551214718206236698916634840593933190857439875323930267704987252635153809607373155304932160197456726080493278738989323836201383663572782136792938718563048392355876842094639587809587031973341595471124899585759435988865349553941759480050099364741914664041499852871183557970192285946636888810754888779344150829153586929814767215062123736075828301326458041202317337018416131033506932105248948326705270695449107862122828328372639110662191657993994355352032239299388796593691979738371086391497087221005603767152293570332556188411232150697693462973458251351378181537909236168772159962631321120617298522822069872362194385748816113516014924664351687349208885192571355514878546229789112565813412537379262651679413225973354699353710387659559147749667718800961930732332846218149683862240239860817763650469798278587827855119142781190932626181350611385109831206186751490960973607191342768201921244415769165492573512474154270179001108568349486013697863309611715519570097352354575756966604807056686985640329607227516159456875396011423874228470050606335583786823927153772056896038052755413046844559485865422919117623528039667080445511448483068219742493211709857916551117589728221426531409941022287963498224064827333627251295448410215791872956269203990756530915610330911410268991968485989430574084236451409904025411574513434825258269137139471658990648517450263385974671889954680850279201405841609574035793891456335571242022133225647440183100509473638522341912605738495921577273501812285700951400875411277475922846359470300385096358068948803030729520636930810219084523086654954853355069814258121588418920113570752869599829940871132845330602112161598220684084380991762937012349239372226147488223389061912273237111459468238961903253943619732258250667530523331293785485885614861350379520414723591119562628514148829148722214946798800053519306147333351139972980181591829446055384629249047903721747749181716210374780187426902572182522707257589023533536636149007670999288160813406593867756924476385341454146300906591380874196474335099506075191463577020587461114648809357011226928625404519574276334874040989497079063598410387892658707612369874708555783126289705786277272816076576954543835518251077980084705729126393964729729743465351367075245708318829126449059506015100894854902343742250498442544336440029955372676019761770171161819069866210514448411158489486952466472022896419698473466866243265916060425257501748132143911182431407220594286049396548118299490397882384324551638580208013520520571901538374560041440249442408140126724672281967242834913275453540078486990903563404271428870337346963433946947867139984715137363402792485696504017609351981095682937680570426460349347930003333079786632732682578597364077852403932633815503774438762961777435323853989833582525497284938038691930597834010427847175298128354491695202917658214465917459971921637920778566365417170113268518262828347586799430521112927737237020542860699768668097529761433081140090682724310610678912634744396530434362383274989960859156460984587909328251263146883490627111272405282196052226402441831447489287461847373597648476426106993746956807571573625629629973314288615291224023179969660610840749601681483338959767306617511652110209488734598461444254352133069815373291327153386376714906776910543819721998004128273576943515617729219760821075187384009665691770414343023003783544106465841649666287337562185752144382551144310538347377431670732907948937257546166046264572786860522204130517101167802478904358812931780745974332894710775321556213566863694399344002845219897689596493389462827587624630031818346614242806068036039156435655484294561080180216270705065061843407260948398130452303873217552238290056426162015845837757340080979143679579003204886376334423814029615502405463967803855522124474395936533016756589707186245411165735020202277997008412771223736404650608419773368721847297309334521401633630762525136780986401532558600227709516818334018304226640495233315701475668854906910288934718034680356650594867311736269530104556753997545657506783994942797763112585692246049764988643082780404864911545351331557813461870679454317533013969046769327444965989766686368912567156517079038552572607385067638603494916399719346832356807893144785126757627076408785940005385216088193186757364301152390428764400539934377537830384092391198938316026722049440516082988962945608510702677149690377845644626831396433467655160208701920166827295515516213438288963478050662091753483487030819266314926657079133089319458378618415163461261106017013693081012529361062140757704634793499499996491763472284308960399999255788907515108918044125425624063003125453826630961915192122002863717669020564678798050941377182725133535886832930163152598928117010503356366291745515526731545460753572475250041441622361871837604671287389506622079611302125005528318141852543672413063868968547004269424619807840737678845268309713879782352969425862178597683809491468492683135474946816167338252810742034066736280523426937513351807237606095142244773538840380357728712084101820582798678462008655381530235632647893694499675708661591105520297802984320027974180447707813001466636035804662590439762644509591468596889360423585154383145010596361625123376842704483308755945392910863048465459198900660739259040854846970933277544426604786878448418960503041156822831358764102055512803031935924221071285588417863123198386408392543076782326227004165056654730358132492041236825015848621261864105033028686658063695873861900975641806327497166719270175901572042124817631251286649715696192216486041216916170935345679275128447244840900917250847768707640683606230873394451447934687361023611701510626531478517312395965634991522998179820315762450087666334550934103912595709589049735287711189593157638595393366075142553635961713324249520040638382755260083779719631575151107948344466867017739483228470493621635937576362787346668180684719333547877681325779108978770329824972460821327873284674950274435701886591868181408672575118252537955653678037082548352553832846411342524943067538711762314993348681976323090941358760296257115660599878711375952134864067959888135015045494937721692443391189751586212520579396850585588782947346618934232717539496593663579764421194308564358407400614853640639996045801062303957861940649867892742733628629582188271695168894970750685311950604260900832975026882552066893898806021008460984725653313279059878319287193839853783387488862298516885447718852792891778851305645611345818668785792860191660956290490528190606749797995777067008858569563599838209919223567554290187729935422935292277852066145878110794362016517906715066113027953762041027283236094991255330153391022330311208431739664172514184287159962621838005198378874317949531877739686186102284143614668852810232081701176143004538492849941880132679474628426799395679176045130563941731817251624988121289000156340417095195902880061099817094054336878199401833865910185402184698312178882818175938306564096141495353572928680748990140224223831542644800899306695115565551072522359694681594383470172199057018496416734792942775846963830691105145986863489974109926231388703772337746863729746683218036180370481877696710616689667567802302900162150959485062540679987852509308397088860844198662794781123452049735539584273898901606902934733634916016736754734093909663349146726533729199875620954143867944326403551331712050418541293377281019405299920878739179725920552939669345214239777633022635318074111773461371867458791358678607753580456413896406184140300560677857802526508917806139999950579209725522104937104446185309273753755472924605851192947816257345871062194621382840685257400298555258544720164380863389870248229119757665051484762562920486268964147327729167792125560302369406829777838430625983611735237006667176473636759337345555565877286841037820292978582111828922893011251883464684834198068277701805587053832890974948307450005094099383186490301781741758110269483331994775237045428283039914093470798283473674884124329296545111017523443165871937343151355665438155123233417689294910242423052526350189211606733668325840553412735561921816847421853987363040929195255370277169088870682749365784350427927146482132837817475959052632702636434584402900528561087171462304534959014737960746392328364400052875199787699170778289742006470520111591672164316832098210323455392042127050414551716476504298210500382147873672463682851580219359668416795403125039284208026174896401193700276418741483572235074076160244538578832703583139664573585277304214981156452024043502710558152497889456351621041415439724443304663166173834577652574098846788902987578720339720961306411298029031143473587133030415658214481353418684919527467699736439115201467433193215556476333904433013452125597536549414116877371982730735288322398065988101589041875426542691928273377559361284753623700551285353541476205222734929483906723890484421777017433356667107330483379881792431513074430662902096656867989513378722506150643455660619258839678672673218093058525552529308541671393416947976071701419952721573226259379502647682121543343425343215050258209082554600064749031426446779416346030135414762221938779631251815351360234334433754434586840222791145025481711973334220095575248774814859231547874136760378134554054409938781660314091926028105881176065464231153400048180129527018844449049801927347369414551205269600074609902633076541663885332165436655975394067878879466647442010195678498046500907082000999200039149164365858857942156618937542135653101366907461425253689154166920295499832629143288891027729953179194994772848169349547733038104027214006008220593430130606525721376188010798793395275293993367440427786108210578273824224828072121147440500395253793861874600192168334779151166925086364674539589277110186706160373787647236199179195904279494754574289441612183850623686644380200058408968073074653514799139594638805945089883298008325765469327235216008194926572229815618644220187578653048305114125667587249241993389041229650016589464365495516521989672102617754846689174696613479691466073725097433368402431622529533855823831484665492114972181291681689667806683485280589242329281265829554024169975695251748560205067855194295740101887889690954670460325271881402650965795717806938453436964583265200229925342671017546089676666201697159861146553052622190409030917174381659119114528579612845331495056208382632942455042783102228726971921189494085439446961129868790052291067467604359461706793532380957190124914227340063428622195873401891166495046771956423828292352125083193797569080074640194311798992974119935541775433955632017662154863053932632215788326429694083448949799093231350049170242220028579937620121842018167877963621687724794843225851960629971582022096107609778903855791696260966932398518965502898569500009361887645342777242724233930064796242268719404766264929393726460106598149977549505119335722681841008567442281996371834096427783858007615463087749376350295546859316105322325023941020675317433105175010912535998274727153982427303608678706857270356867527682380379685215832927415771043874700501407974957609321546346740464292453454207254653410103990777594210129808206377659181420075757264610979491882331026027063273937668640361233229167774364255813261030950399804123565495506986378589267666295704611841889288447323973853688258318044538347044601947887896610337078203289353084509338039828614361676528308350267949727919527131006852335503493083951576174651130176122679379567803738200658790281891665987655264010572124947720570152526638245565858981071552941813911907482378363011413136395704085044400587960594851806615858736018166315759150719839134638820306887647283263411453932894283321971802981279367669235136426391401030925580254261048036500042892291775981326029869649210321199394260013321730549236928717295490251116497243173249379221165626012346437460858699517361163441702597271660450073049644439697352300798723097881635636540000910229020991127687707092315413175891792848039754973002928548709821544520365357994784378199252608942800503596923106950861129061054649677680289763357962040167620327611927660250224917048335166604919287563958495817472711906332310472721984609542529218280580712225392987396007417446734909249123071734815466006440342299910804576329262082675171697424604279158798925601285516813870236812601382571197386537203226972345491716066605039913165118069594887799446894236740565524422047350906492817060270668902263485173101138856094968737587065171674715618313642693428844502224006486029918965607290378588471594355814139338018971279598366098822899625748074996774236584476606741595158338810212551651922805983391592637428671489639492556197629000331366791048730016462893393588756501200768284740882968207790451086417811059473370196611232129032199533091655636931853774459727022596510257997768112959377127228346047551473740708146368972383535060903884313744712730833772237762996821026237284148739723180258272638572160564175281034623305651964498452250892425056543441386847115021846403471003784366028989028823591569392081598186816692509181204805158911980641837588689989848224580113557949036499417594097567934976898783590037090054566094591861646423254192200345693870626090707318253699143615073573288479211898504349669957016536943175326554603960841962446196222118961707772546548859352832149408697616798052348140578796643999784143114220945530102898112646015886067946572610525043053086523637392093072398203244411590091454753686722269240698654439401165107384181354945714050835942088265791851502499667782923114127686032773665834393774636671370498675929518179836643346769982740447514043933900444381126439173368017113937291105457121940559864662876636196476239314279110445396980195803531633451663218891607489852065852990122012874486270835974199586470908062841005070971770656756066102861005578814995707139707496025598569520646217926619305290169060772399344391786475331290288106384453348884571929457053391692434366079316983211077500546506071053232697805043619735874026191658705321132557040788120912542901687476013788921015758515348118574492088477771539769342662225738054649550877063635994048130285974868728333958770075535305231099341591443016394331758764810574267245993328141036702484506939570546469476226409576943860679218650906169628005565777545224764006391068367810744487681506945342408726209048424077833527683037643103520222703533343602306444717341465609012881296162944227852285010567595557119207001081970426062584971173248610955312281721883782270803020768698075381423062654477353767235341020014299957157332920694934904792089653502693197279332869932126683792158713863058120866055440784630012773286338295053437414943485765716469083999671530047041364894447501475038936100693524825575292245928723737869849279411200807084629717855495775473263337711479897667375007970512456146343121526617705596270529620602057427306817485758613103008380267071407565380523312895883886995011283377461214627617551996206443432095781231749110028688528951164360701180895968453531469243427069481298147909085651320681038836727561106546726147004112970037916505223097103233571022301182206982390590256325735647518444566223963386565960131068034848760137548392378876059771807576722072357774344523663097090562147201773168153767748423547656145095332502133332096663859751062803389474308142958452472771651497307424167930992959401923941790580624773024506022201904975934780612126802017964431358881159180797314858626874070076107707631150334908595878340418166477474001129653839841147485829150063854338016934306241842650444493708230393549491412150937093407815820932012897076595974740497584473194718746811334882292992732496463415081019853173562752069926378238404091510301510821249900441707961395866369962461701834516733286470869438066368195975600090838045362676605643794809708686781251075145518751337238344621667693108167166927967650298004774395950153049751260138767446610390360744324855433762124253006844737847386451693683874574873681138558861022435424500897934574389703920674661646363215655249840328713809679451986760815572419452095801066262424822994186863490871274603048026608611777614228459798803104542144345286436565056406378584224675815832480237264247361116480769119874787620934267868982913837092059013424556909966057815939205867437365548989820354925622226710578143060909555406367304115923997632959165507629472477191013870853645201073081630748768062213348349385253803365911335036098404124408119195469069357016329700040540696008901875531217051103349296290472659697879705523298329127744419595081326923647136425015598062460675478730743160852415346413769808369465102650397174268577170793399866082998039525427156608202448107766443479524851591235385894076377535385208890761462361840237679175042755228039583486046308289947718758930666780562678523195579311636530123303337804224837931180240151295758868532939033175690176073076705080906344507759222480947433693018711251683637208394288881427595936969660270301937227361632853044346157127876158503356537327411852096440997506240722338637990917034902437098493234643763237926659611621713366358802777290438973305834830293085632980494262158766605947446824569474463617091759486246574105524113003790333095269848832187803635324540796789828491880573279658458656182104299661658924625890083544238677542136496871520939499767277748901051898389131200464233543389147793674818453227840166765275094085423154402204029110798493208340507763705403681966197328945130008029979378880180041460591265671189285368682101633329772282667719620834497813523210288679789489343022626801344432858976625716988290187303402994547255123807695441399077589703922773936144699397918842974482312661202812892030685445271520906361892416848377350455025979108707850077107683089131702348871070922904149717191047681211652496894115221259553642353982515431202545108400715290899835789691405361382618395266616595303809979651424587426497559627634329069675166859726302987876359699812378075384329931340449425179469297648387384825635332333127204757514707958189763519968528059205855526492935468552514215809092277656874228943009052709995714508415605687967467843789884952106651810557851504478717508886956291810687083404474880821572964819577473207669265305045425969023485304224198193074484814475675018395616730268704289293348924510822296021730929623507807746353384074827350763049533308427792169865723897343327123481944932186638268078622048447771569544155074608871688782897110875311989843111482534535844242538765646264712932286783270129367579713081762041720097000221109009172400417654027519100159248752509302172377474601096149793783468819533508180937211121197830498359685308932985013276435649659195549625574343282350476866744076498984611027144614784185875308922470701215625381999516316216816331705452644102086076173792245453445765858810871143575678440629719313746969177730415695077671051688916132192006422882316968395467560591516896856309364182459463927464347189888858629714639670111044958805039822256376757873453063438738588095680311281902034905086506898627977328302950589254936617126319081040752831590375622968642458891783356516051544087159055421842984652366375875567314949710969527041689398486193122796221228415556392822923524477695136632537004428916677198446359586484182633619631866655895136112815875140576955792454929680648837217494722275340713618790530708930587817816936966332781756751846934610554407252816911230400114193936586981733194132305113996251440537201313051479272622761374279424100552211512745770519152226386393878373541385412569200766642065625974276737074228873828524326259264246969350580103110436756261001033580593430211616002523947225811118134774316114945997020105649901059205054442246269048189396887360245903248047651697047232564463891596382926132589863024885739010995047470953216433010411843913364328459384659378737767699861221288369529994227635715784148772231677689971742387270110975787359602202954429403514569144199851594964542509306651259809813374909108945000527099225942710843354748766404867555990305786384220235008031688267059611471416387154737138274525660684751359942082129336192014680352768348561891367143454816274796880290306695414305924467463231166119400417998126465387188223941848911192237693531605803032751807347139289734064260872615659512009835672077831966253559038201012261868878422105443530258740089514415382141705066682582840755029513864847603057180477540071034331040149910507454931477842813785660148569993971967456499884224250364935482205315929520523181216536710350634841698445333157787069424138107378854052608244399447056974927896024119187374037389761690613912419842815214008651627604903449300849670780342192626404990529115931903571214072175822775913706781928351232215580418723366347577601322470813086487834491678439901338986054646900614868399455252815077049873440721995621488995308757708712722430413519359133678362397459081407674127750808629406320370316134183670139232834089411332488888228169983086775553413481465118582441845358231098741410223497353468706507223706487314017497395682885178080418118149671862190665726064800569945369908888295746791752423271955037346503203436914035840686453060246813922782451243995263283349727671742756793857672676977669178300769288779604434888594947247924149241993335656101610983187287563892884877562438866840427621007382557236399962964540808221645103814775924196181209212687430137295808064650979148672728640568511768399285773811825084501372651138090430408604345845717040146448531185831478573882867671238451648635449373334668319281267112039887799769101117703547981011181454631241470666395819998163923636983005458049118786114821456861381863599119911915902597541195089710029830879941787956923165756573389866148837764500193969001028836272001053043233491422612010095503113125547623021270443024888940751672740329806527806896933563064691085870611047718853858675739959123705736551921686822123320636077031805804438074317464620932062204476226604655148094992926799141870570246420836484093360013319409465910568510484876055097428869956309978079565778226577756451959523522422442443409189850471944537164270083567274007721957410550090087572158667245924102285623599480101656204692662324628526388294243310842508671805175492233947621037071558866490733834324705656842854149290187485814348638053454371284268641956249669165047475263863149520067891201161328262277793548211538970604547988837851101024771251465571894136914549740222526513569245305441485443098150293229352425601079409412078924737768045007440785194662701822404900163796289287148102714405961914930187832915043530379652795303962133002140408676985141977395991406710089818052422759860526383548968982765115980698791076077073930986703008729244938768208512599308326728291742656717793467633343147095085049365044873500751106586841569859154053935006767431061537877085653364845614514653805635284038321898260452342053935221815753664293093587222207614923935156299968207217736384659843050476290544026289334643296779955192449441848577347861498985187295766565083830651432292188677545087978921515425019341378386722246052281667030767049099018035999852031621279517019539460600791676536434688632589323800146103533867087005736339795396418645989109787714516219729220330617918941822549430679986694036422678157004762938274744296230369091442457812309147620841834972028957967988520128747168682272674596241335532908717703275401488336632315247887319659850762160440063651762071993085122471898836254812200625148012486109673024140336252948188733264560374739548002129701147918573212047169874589599693609297135578310221885103395481073136104393626590243527975519310430033468944614557859201215948643919676901978695407045097898962709367874837146036096015029477856572428498604014852597833262568869801399170234588183125985405725898697578122114578534137179034849232759317287581610696868335237737894368392909075000860671434969845098324216145530333575296757035487626945464854112740670264912671171271150930893215797329859326537746427924506813731293378310783572924242934606496994141197678552696568279832605974506975864352980371715404089335060935199298388538248217602294306866868919306250480710379122996730114320968025795151702649657316269591477425476922736612922558199810439409485948368611564628739316310691343661342788364052166628166229055941465462262782407645283768369348911342048387017598433364863116224184620987364747152391865993286721757282958529035799381936341592042133797176193914092718476911081951950112976244435806916073414026242668031107654260576008165713552632171785115987041424248803689910205299199591192788326290389206983486198479869634418312705825869582776141382465420043481782702097025745698047091174115486891008797120096008507580627678483344200838313709566704833408571475698339890082239452326253233633915063249653631201155321450841937648891998979318177407281471985364599615098413683340124684084249159798932450914095766376904902775875124718188426739035048957258169515028027049595725494359235943621784938821917819846580693591175626161478486008916994112331949838308224421778905749409077039547735673412765117961410839012011498203861495764812623931995085114455862474315881985645952401942540920892941083897806136090481350184254856271511923531114434721156321838255598127857724666544984946048100535059662533588003521842351938410845479858774305863285556050827368296459882331730432971744383953475356757164107067160391209194675001030165050855586314199099727079244363859003875424714395608352110729352414894595982037242514434101042383585009028795721037709189037619068289265773585390338232314543680436954501850381080510006249303071169561849284812511356840916993950655874093002512383178209327504369215770192070566399648984212009300762788663921282291083517482315644508991422785620821199970953305937559833589546993484878226074496813224223938355993407981238400591379133220474818283448878196056906168326052477080623125733428003472719896296346128564165681363218289976666943143476073141979732157594368336630514268230542012470908427891534779649613978150120306690022244613213179539044823313718983048571094206257913723870862469261383698702202019060033440240723380060239718065327833058869452277869659487432397847273746502385037339513565660071966445382080242599389687746038405512967781027779015719438454317913369014076616766636023122254294640773927803257763968723661612914386552733425869560734181527122405566326045161188463240409856394407913685535599837676318711886744498930924754123403239108561305718069963583097459043587351090081655098704857221148819464102291036271490594499889889799947076641773632119444722553096913417920947929218922810785713059478312795139950869157503405510842189830224495428180980116591326794585008667473675675797343971877117543514551588916587727530376857405513072923802072281741708687043610164313889483209720726211156824931070998555077041792941766671471521554453568487804660145709654287603251181423867986983102085162697794712686008915926102252327858517412380371903104091934390898010925622350204839164130428560174327790525255321541698109880128225617894517472952642356277155764006608846228124683581558900191097283449225199648015092625408122673050324046425530769266443264207948337979415355015384723640069144122039735433382309332260763591139078374044753471300620075832304335709847757201476205598261654191968931251028856276769830189267535333234264393070840520996949258007129106285831951454156416961673240206674946453429984387203884257827361018432164330995558429262647378736590487491138414486515327067151064098512457548602747957622119521499899833486170800958103466573613835602324260844837883100378417732465183516188245214396524058553302346799156870610778395819964731239321223487437159125628004989178315107548502620807042106705268601321246068850036854912777055389251967902114554282583687143901691761505952693972360616510373285033419544373937636034748704424220889284192126324937884395325905877100807983700425585484908251772844067186894560722953447423739257477701779621549229085924205672216651008276395010210497085998107513236423568413907062170334204512342631592824771856318328365223858519436028250576219705946161686924023787082585801769567693167192851249846096883222378561576256914089405372196174096928963263118123630354237296061141397251906532106071823637715445815987838867241415897689889509949219127883281348025926827585033139846720816848405817193628721013719907395790369592963699618472208033279747061889082600117234278040322158151732739468590805651702576791432629089986906735250584519457842590917966260791595193651002714523283197944812591401185526788384127659341196644449161404591637508802880783028997869373916187782061317160413475584195608492337425644036297938891786016629087960009944023582934886414433965050265099006351741566986863011932798775904417670376081187055661094288105759897833687928538130175514555886605505651385355466293115267783657497804610306087090578537941346426203207080744899809119939651453328713710201348897537465199975640686878852703277299862947987041390585248223196623700679676096189429143561645152276142313926984070794584254273031508418969365103015670329674021957485665050395758768577897801546160441406586829164889890415936089585941415312085575740936965110191230591026174629261825825961658180807049934116313222765401731840006910380254908793224572683714583550496242667058707711602443077168383057887192466067770448364251817186869188514613607620274324445158185133717427752218469498839312178946720775616468170874822653242093129593889665284759378472981486737040298584042482788833466072711514802878330152781441232519421272284610005762737952115520172576561534802344167791005119381390935604274706570491764131650270112047095064040701744722919577432948487796893335957523492795569822180232489141959008293864617175616935187904896799942371340994000334224257898216115860733734025871429785783115732340940820261385441900190212959536406194196848554775322021136627856188283947809687385024065899375129215039403223323225521437557808805349556678053001924959390873165497705537190350088551989674958639662910462847837154824160036663306561925649736600340357071100454021469137493710827340459272179709910078327329849162712631509961755706252317404283919560058537867220460155187144533596017064430539089496594186882381774546788176968001953885047118829009068718445984595410615339573345400555707550987630899837839156259889503181294065235134862426527030782423318776739409688853351133991082092377167703408502288872039611424643017209559809221376129044285117181031859400440865566904037865603197409527007025038583812221947765012893658250478721918403205442012403199690707213994485563699133683595148252175386719609467728656606428697549389210389767861690010759927780382120716931394227692574311359337349204237135780575340324536937546215750479333252574674728242046482076403626220268385579060528949389019583436785043878507715174134935779043727392693162322628350514624374262497934516636627137897346910164580000765689909027643134577867717846172136877388073572347371138597186992460973947970176752226971627911805012351726630149283992099879468517900848227208683886793454135772069040730714686928358321663374220138728187384616153356409737790805422282093436854541751388631127387609388540166073862048967514479510205688492400374964303317255231505076226260432039822893318170004316785344418845045525557685066813312043655605308828152326495028030700836555134759543961673590044946355782053468382471554624949599416689093767096853025358570300540774121912625577310576944637462022477692279554646568346825680446741242685905939750686513134508079165221950726355197797308748861013612596248710878665127999585960860992516287186602340285354795466689929690689382809525835131610691041406500396261951308120682735891241271484133658378403285289259827118221581869404853322324873405406687213489375116408688944309795215628677194728170943368638828593929395891155818592426246668112537519224925762315448419827504518663710840635075872846216418060064249162148236038132810928534153668345205663773294295581984476090798102397951196526196169395030280574456441359394621416156771236346230702134037541247442747979706070926579835097830908696166710068879327433321542296588946319445206160467778161010176636852841768675468643693567164590688572149784131237690784657337818279253433673716878453879658474351960587914762934363435322036666868750600544152420046972523988126169148232986778632515478324920583992018282354741959807804186717147467268765509708073713818403528804397786365382854893915154649474829154890857801938788705655880409905907329414756130248345370530241501934567381812328527907502318991332118879500986120966108748947081677929777401262509542008292709029744163750181275598003958971856532133785500683099609492469485052574934657932119258691913670006966556030828176068062238479640988350207945291707900845338776883207579766530701230823754285316988241076501622107550132726438089733838790412487804028438435966979239361583431925247635235872542795141387545047033426591110547090172889887686143319744535375614750352509678405192469033067527258845493788529805560501573463252142526034260786909691985631513564383330348917720523395332288915838834542060228046631324917383372893452371007516129482727391776434850715416522052275520185552522445725513019659328108765484431362810292513820752153337554313350745718204391543077613779239363111796511000351388355826961485429704761315449902021534287344535545835337523872671558982959450433624662495030254479676965936244742166297041549088122791947288475609601096339690553364325219647230989427285531799559097911670795727378072412847310923755494492832429732398802397600699016172992611673310673863120925754141291975016552046899240638642565485625712268153001840039705413531968984814458564242637085486426313971635319693746843231102332882729905770285189353878939174137547604402795534993478488030506208209667951282723586407142868475777083447167133961168557741410543150692785205294683477702567325068403506966125637846746725210671554670619925432363513829233415384134880810034189559290150967194236468936553489250206216165007654220876099702833900829037204188419145662496094365192883829551074795158075421891549113772000344208374626895627946268605449354779779434160103054780505502691418938927606212651539367039612354156063375900849258988692428649140677931163950952371810735427571555219868780144320322495928061255595377867399101012842793048128270960643976399172594683059409305040515424216359223591423971983855557049730467460698496646780245758729775119747340126105494331727164378020051893160819937144781352358589570402007235988531263193895464079780738201853435693782269333843844390194814887175825766578681213302581076172949618499999996139121174986954594768436833335999053507759163301695929842524054298020982836501827188134414497826505361984177763368796590102366087660016424628453605758092772787052812805542224469520299726180282171659270249558769057326767369081894374417993610739361038848715080320103220843968948376488814568986376243817548845227756276522882314185062899382642623504365168360687527086761614882738391088163347496052755680526713207721223409238401206705304855135682987290026764835596315550703213719334803524990074312287397488351180714354168325461102970063229222266906030544533639832299982853303895297412080712154977737641784431268478778687405764568868246666990514084017941257997418046871208768987512435086873488896084930825176217965344862895845470826486414226490364436362870599000743140746049301598986552870766377095575881132162631485920284638715930473720467419938488805056479381145581051443486389950234863676247227619434786215403675230280847315958192045282263163717376637992291854464737355949549467042736777156830675071123198533100670320619804236056245559280223833232833414031813012423911866323773021404971715593688884883855920032162323966992884452486912030945642675486819170926266953245009234080219467148487502707657617836012977596160631032716003828924685464431603832247511249698311377409628558898690443470866408538904363616184399300564407738799170010202907826337422476789344906064895666134919643106661316127421511988494859990891710066484292846711493189018709608825064356478188921943781066043350681388877274979386104339084801553730312699360344699536281500642214571674344937890956777998225674769752583494897431127273528686073720195797081354028649826674402663177482873152883367700487465044917458786749760494426315952838387557760274843940384023120867949317138668426138350777649869422788292518574502412605009990422982372676166565000955730239404748579088462114751673989015725790617083080366028816177932391543503924589288508246282976277744357970245436408259572103537479368014753939176383177786076153379831536263834707023496136482144230427291727241172401773729311433004229321383201976754728347437348995685610947581200290237412354611273873365948792073208735880155404533419747689466972846961023689575205366503151421232160060165258238988072792388277330700638829663236993200141779804903961596282106176377836860455982721593693513150269160339991497788631203685195093574449087299666358047941350237590461237112137452187832580594778228258219702160275662847103389591350695763529418177689935388842410865508385444523224900968968776597089935025955615798729878903240956579399363936148716231000357039099889748087611090167686411015422709650240827670023866301770314098334595345653193035362393703976395825420118505147696351849196155860797545178507491230322710745277225218927852686629637152632540210376517061821182971517666721697439142703166524663135238529837752212355606901421060927151572797973427923210765160916262047215314759702645141709953956038469457980729191485647075074547917413166644493847458213278245528586099228199089047544999409421397159510792624537461129221467695480529734204512967530854377835865363517049024356934650871400377245493000584617879475613242915506017296161151863417304445554856208011310932515413772776236839803030783776258116983200612204951756072567756049692915927468797065921595529088744605524475997919757906615798972169041119952548743629126217247664720098256322943888169936283853423248742769066111354509629575425300095363115434736995950866426516281260821022343095264536838916962426910995586837097371745823447791066382958651026617932583294712890672974820747513526177190503508374024869410151326218954405079925444576324618141818068568414560660004868113159233867606470580712356232599175088243335230236263133813530748989090352122185582157312538371948046438096427993306114425491768706480029115837828995373578959516642463325089028260904912192900158122286890951000029235803769896758881650089407302652246845187511185023507900975379862537656642605049928900804744621855681572515249954724128951481509425220256156310362280347324805730039397963784808627439309807739763874656491832765153370282786174522808750809090289266639538237180004129962771237374673712791314526382095588170084167693572600696773306163623827200750295341462271084514748881024517031446913643481258669374739315747029646534803286400386863510213593558370675059071722816552874681625532740956050693682539514928095998684293968679980883878743608509560004725626322062378920991238583409287381530063853572394393412135169496823966121427417949423691026350590169682791188634531940030797977294316790446107546555082954571827004238529668844103978809199911462141944845633116446970875764265031038840264557783029171725415783407405200242631529138424233483275375167701931821766660123031947134045250540293845611363173987940851149691291209813482332337554594856619733092922339574351802166764907626661105318131942134759293751748162189552894953100999576736381216229738825453090808538947922603339610550290891027581920032876736542875179461528888094146757000484285757671330287557462785082951049838303777949987934123235191742841574747476849081983601202845596627884649864851139288827914314501824967185541128488765836557857377673990309434947525591121652218645540761152493210881344154372611207950538550639420619127395582214483165781854594827245702270792868076020883994548923352240966719285094509551234989448215013143074058267509896631161516335704153675906986190163940649845163786325794749176743449512338745664947639930732586664564968250046682413020419230923199347165654049353718361380051943287458096849340215538365891736741740867150429491928002644276924410128371972793714910381133698068767060731129346606435233278880461164006643778450910348094018963930730531697429467695100380798874884517870287361859471108851048450320695373263323415055806778717841690654018091794206847897626847709427742475185052061175641377658369540711668020851178302531968991349675373961856972264310324296179571337290415829763988235489906017180881814297928611766336924339832315302256452100749874488671934253190671869287941783019919912694062379284481963372381394894597182309391643869305260760350370640390752815234317115749965039410806718068167981011764523740722949304753762780018454312929814166258197128254363695576961740839485226095428201833753162905330601812731125453340250021853186302211986153148209141087254329121463808031890485537095961356904358933065261723006773265497605900268482292585962886659743928611310823840535574431344672388970311061268939806936582829554341326717363557861297003346581881303144554812147303895088035616832579740584788792945542322725916506929703532668943024314002906627524742337049687881429669133572742421975306775103284064536234610049656075816267325859013587607283964033037782003406867329015743631203732110148087937536128294380050795197419207909216582242035862853437227838370047083825538932824733114560084140252417171688727383012316452536023915363958588096389158226403337331399159745816146077268976151952824069339227724401156386038006135720405795098415359950293000172854854730373136744268643441166978045515921251944479537289325301170513678033467219357564550200129148581699420763976383234632486123186078414010285702428534325286371187136810495628603550165272155535786608708392172106446137115300892140431441841609538500519595889121333417632229175447868708472462785255803561557836180963420311458657378466559498451308067169607928999779645610122443416489834108563077442815306494264823372178402426187901042965935288318259694381167944865246781850204775477815132661923265039759010704807963070537931871555890958397917802903403830382797362865664661230139121462427163323891681416597357192914689004684712160312862579323227962161742949596703655711164469837350132806786129604564719345173956934924122331643193350343243616273794207263356266478284652500700157259931147365385988624994364036441366644720446065254917870727217354786899116192869690112300059865485300617660495526243629438252441565893380029454031625129065104505194613182782791594885107383178145191564224104879756338633781616856935781238815711840940018576054386449610201114280418347510136223052886102948577834963586988381374752886576401252472611833994221975390243153453472756546403331264014876259254598506488790857872980860391808619491915886139668546027783378513691078532445474317894717756671444990094996152245791098756077223518681293936719031909676785640018217583270937216075675348286341550327595874153104791597384290653478482494578583673743609591207002573308860087240038356910197531665381398012400213171749848812088525366918158174273408329213372973780291110688937290522696721490774904861318894484545366322729610427465603340444806858339655704717301928980464798172801616706150869235404131941618050513622173345420964568000034238113293144828502000982875218263167159848072553658138222525585903322016280530177145057618129612575963158165975569795767778132386461686863992464360402909318474917524794742102958255013238245578784523087607411999392548547148512714408619031793226554113090609740264905838772369840408707795154113588714979574817199072502679090344739264020888447613242823768965854279873551516916891189511577511506905663261763008177934891659706287722781543334826756441687925781867812612682129757213863429949953450917137323704135033017979944519520512600079350614878103617055487718964129885663538594105167233290942585069352824359460617988244278202035107806366328228084267063188462807420625724958208552456840653050574946437620291264765638090429772202248252085547341594943329380059208605212087170397210527921337259294222310686332588665423601407029341442623604703083829514400902437716807297181975647310235526025520489714569348001727972681717516030720016240193218288696570098549565892273470175045377413571352102696923231030794991517139499546596172645493971912436606040629237106914223637205103061287498851191351238218070609728848383099421275531781834970693268375650520463636490952453278260977120577152506232831875284141648300971647920367472174046320906398910398049208815364431762716201949017347098344692073732179642767588615021136119505400757151123479162945841415372162042529410269297380923235989029217705831774653533924585871300658488881097413272781302129689406614320639979665281080194944319615650975278031416879347926665045738770600339684241894500540659936328535691077432849939339384057063479414092213880183390781757955629426750932388488297176454713355919425226884307438392314617944731737029144725577510693384209697829258724012043393767895148616464576773780679252457729118786997304080889600116554093078669023949567297171364686990659260688298031940452779801260041208910206637002758272006789340926316738084564776095541417494638939222977789163008227790786139755239783100670786318787106690145120240082918464997321476747429499186698265964993739433654898304507671245109062887997269062441012203863644011261263420804026642808540070920661626166755304153432256732718767023686911329076229489407600440831901318751951119945893060817568847532353982265236646784289181529939945369249121754246607718629763411130001780792663903533017464904716772783154957842715664407591205235325841665155946816819164858114098067325908967715518308543197960370852288970108812122063618705089580327692127449983625925285495218102573003154892718302191507835006724908128985766682423835960982667723952962249532119798143659694723758649381200425560059058492559313188318511108089293795222856527399361955833078197605564648276694356028997974645867724327214947029509607413468946221728406211603805017493316289438389043939266481307690504585960943156988163901350948684881956994767323538268722144295474142828435203194314144409048183597395322992711017229476537806337434546391437835244115334780368707395253228723848038027138756737701850302101189473144624203991462258784857693156042980637858475555222724973405378379126800188150740783948161891203227684111035981301738741044891426049632578846089770511370270660711218060326295801425044527785055073655064292962076275566827751493712417108591301761140193505339799573200951535916852280782212169311958313942982874304943537317853313441898750898602546754711538056092662573393797773880991650287422008229239491520673228116749980431744784305230782065396906719776191499716702799834925647923564802436693629257535705869332603763583167444983458029452696313898298148140889271252076731230098991625284313550254969637236525060047042039388932572537636763595687386627222524375055259249012103764123334313515317304278299163499053007878170916231127316466354960955834103717269301037467868898386716779637158812224800645145436467688510883515198027977350171224579881367979542423576528428605748418519735171301377162648508530103187301116729636027106391352195189520174186126440406452804023853669982942067966107342212629317654958996777765611950520214050858106365335200188574222460155868397371275415408291067720691904344875904935421864194674144615511581813176701001387290761209338101571376802724786111206648734316047713493383475660059611466791764919180979175296404125519926168715467705959381806691528914914461872484698323394082141598935917763147451826487558679825064345833888286396340253911196298096020152245732314422097614418722784714471332118186439048235508127962271075112508196150381605829060476150848747641751887682960676359621719887009727165741704528798530057997497985746759990153150834535448513551458194397624536299064331241736683705680838597956373436178418161072210497711569385263636991467352350534652475833687961899073387687946497745868420988630948299699692074870045082062997572571894795533299134582246411371428379301820798028499223022506303400741603484540299794903760282751772332762703107425223014832636072256543149433554187562106829707637014819700697060843733961742843198664670075859516596756459875122074561544848479324069368700436019115538490921245654651965794049428338496168740459409145625891713938070262495653379946873104203803622797020557847178860462476824044665665885110052665048662615720682598403331516746895138438128830784034464588448825035747624959491133375666039574704814215798234279353314912871923716599216276984770318691643383417844579661432997158174615555467067652049618725635625900582203377757820017334381866301101044701888741014683701277124661617510195366837498903781410239921664437666724504512076957178513363339426318693706398992667041725180662480641519945627925605921388957888941069547811383220069154679104407980655129365045587434809269137318693891008024526365674472648118821455275738599111814431230706883460510737546451235806628855454174228325172048594246832742679950989610751977956473381188113150322001812977145804557169152371781559651495193986871913055172501875574825648846514347746726006987267035717535463427994805919007886676392182847527100575911593196340109608559303893738309999512857626713570750421531784940750856968235642791963014046629016186991424386303178722453129971417467000490237208489112473314251917152181373907056129404811716048046454619317070807382699669823501106804797228864497987934591639649033650461349687709528431069549916442146422968941095187108780535189306486433655512791867260368075967807035683590709635688343729243773696485244231404033030270599550815965032574625553234202019932114823551645319411035763713142261244925204722623112998312119318160424942915246260746363173392274606205431372833264643063065280840686243786581298783828579754889078922513235191845327876461398623091290573819865201413324277781391895316886500489402692760414100754348138458281003863851457950468642854620942913656461826208057106478724204601904253525879863741158864246703584772114317520035190104559495083036795362159366926093637217449585237038475208580788015921037178298811327197938102838263948367372626514330619287575814639319606214033951602667631080433376688029855061071106145414423990864955451377326890762525182937105829141932145651365593735513806275412080600166620561385312573634944902862207446562172478280427145642145479305750764275614560711319949419033320464903891971309104715522554291677062363825051739647944339573400427464505973858799981788316746177452777649474098080008505344807431963732741505710409873558357429086030047492596048745344783794828932163968687133158928844991816020013833469169456395882596540102504324401955074075274583489336511623424087194802254034217288171137177186281574963738646662366016320912875723506408737164603518534562127166824659301373295685995363407178914002898989284946404325938786145103959279033685742005139013655039526730121200701079966129258737968967807107490536036826308097021782862746931464226472375030797360425558102210589971546020925504911725702109137976176988203124699728362599356502400191191595226086624768210049052222427670995815675715132906763828524903593431262578060873689219225824931809431006755236314607687180463124943034817114323657509593794584772524736000016689664438568561264033163899337378076299482663096400268228729691136388615759370032159624035128265410531253885840673829412245738326091286521814564791561802923237870934688665653088010527343222652220246866273494528029308592025403626904746675919570025356502278240701635194572258670748840702432954581528487283042642168136829292082185480796587282191843674963682950575533266764560427565039063739532976337429405566814874920223745005415343054969288460180484104941522365228338619668664964156058687415304369165342545187120442541855046080244665540931150675226392762328798175936679268577648707815347387680174945719729681704333877175771678636089588713259482018503502490831987044935877131121138243837881996155090244954241680001060470791423211858808990932730573739935284194819475308290706801713212353215397458709239644118370977198658563325770941772610462459489104366634641944075966119015710885868252970531569527181995680466083180765222983292555661026931027216351359673759480760539715304490792587781747560766559858930905102237543082179614479299223439157863725671511141860560881968606829941010817435123668865344122380590859048665033132083479960118414005477607645595536187658619288713370718645473500830399098007602137864600980022568822971938471366609640432291267697481452537574056048592867778895324933109609245611614202887358022810359532112704217861978569799651533063527524811250006282450595036687287741119194145122154221573267904812804720986482127816590993815456212428160922840654883557232482142958592187249398548506605984096409441753551570414819928141915189181154078835043363948530244320972702409222708858496096628219547653420567395843465222643304268861974646512028570416307525452267248405560379853451178607681910218489920311909003467302711052977869479560861924035977830516083333411373370585466308832089712090550666700035825750835567249889911128406676953264612662776982952044858367234735138946652362279983561479588115368543039577431154089864570682866879375487047740240596632559371785344914342371736375686710084333833524537025580448340798824351539405013731203961739712322959265689512884137486130957596859562139234390037952182941067402803227560535648563801395682642543900865184801086590807476347397452819600691513350510766127757911039744303193681106710576050310022597381990108985751009423315698999354010930273709973508517938096438743530215637860809339037403134129643896423080717160443790142008699430143604932308794202388877167639834412260991288403656198726486907874668826700550828462861021702356056738286705368898878211828393222980164671112648379313854123047484006386867414759256353963380546407788359287679018383657460766263386371783392710512737902526008233183648847549549065834350275524883998269984155383073177794320289393891634650388418913051294436415569566423519475413708299082019399794900815668532043132317842556585384137537249427083179299744650293780593171534670516232023278387017792297085645795595823177152487684300292673265642032373356665894739725460074222301941964099476439913994669967037363692862765834533840367113651806629404462108963902129945640039163889614221229447542246623847295634117538987287772974014645006379409370146607378445620420116893216183615218583949161213476389459529038777240828792020675173837833044793946936753479453687869774388503608267811448249736139722812803431126693429393105296591116550938162129169701275750574603556849723084327947409261140647679439969574437862153061661597880640119152137154297190263478616358990497259793036665891906308465882421390263863556891699540013849628809969031110749628774521124647100465579872152175860630104779881307870395317694276691530970983428070031401474477262478619390168518392378685248951815442443032173098026794111128350815486682645047409246479377043836731622980363064250948047150350822740444524051812512742250051201319254796844673919506750715655909830553855729323536977464898931241255332134688607489282479188540331591696312965442823294479251258356846530821409944441590770571525984691355570430288407487133607109061201241939533696219536733712525017442293885453557010000594684877355508947323129660444567958619860600994056368359331052224705268876694560877819194030695130815460332983248055964037969015539872991863251372086917467485205788350559589788636972251134242633774032171980373886502269337063659333442457806777868448846508126930008233145770564209672678498535187918724604014953181404499811793579404212941411873079753761676513696720136908041113799104723795527715518460880898530645107332592181476926992056027897649499278301360079110069721341265277490696461069294671563388548334673258311534239226761188776414745432978329556070654125561074808649180605962806224461868289734828496248033758475100253840703978655595280386070813848510095890630061624607547866297350784366775018635027668004612006390566872810299997991864839933666263334781196219502320327021825124699365741972747386171246404722654284206382000906545263574316513957579605939870389968471414830082453472102746945971248009571318662274237605931139452306464228712632957263171200150921772916211405534070103364708918351399260098416142288636448754036528051378691610685810563464736450775792426451446390446858425737934487618246309643545660707139260826607872877280341285592277588060529075485475899838067505250411394251789438711895864942501130443771679032754718340570914515318177465726207427903927576119328917863219964062649900688269909207914710351772028083382864332167505428847748389128770350201256065232523038910631094008689197477222215624132198281833224427633185173011187745106458047876368810014738039799085206598788057431097193404815067475498486813606966945630528413358669908906704487161037285230985443547976057475958704449225957471291427397819117537782739699629441749693275477987118171425707610465586037008463782621222886127001613920513819046219459977649989382826295414864172631131052190662385614598503372697159431448261740693947587436670205988019090080890254951338502342969032047833229768788956619455728937192814148225064282947239710309199917198474033134711461888929065225683818233753920459193052923408443381985390014628278493768715459958456991089132520256436287484925723818519618834998192071379835905083784529417901872665082134288548717251824231281852632064696224291715247407726180088002545076975523786041321457181003027716308244566353212295523723618947775467693563272650919232336642071002807643834652553539884239704354413380077791060947366808428328377848937141206944990891415770292200696360050477370694506501360623862326974792683483058137615006274952122761111304749336265456761415652851515162898156981147822472808113111217349253489398222029648353204205311682725452897371734389999001775265030989368870466700321084723552466462058131640436302642111720077446910729977507780998305119473521347134610960555645857037266981150133560595021610538066918093336019982572780112760655702639828470391440155900252835212299120445424694900639822228255813600681728166982022654324834498694190036803712032944644078465713046856077416828765906092640068682681659889729957063664668695112179958019038010485978216071001258535449753317384562782808389911603224442024514644655099346538214517362200130171402535533769432893793105585099839742776502629140848157810066702556717031425599144927524502799820740550979511804513073674770747377783217798790507330790189896486211625789836295078425366102843403021206742588125301375989419777346226369046446665644791633161246936251309496019348550414138870550753651650600185101266888581237436201153677693954016272398062594600809129557051730875356497640980850952260716008729661169051044812194133727702300998041580246904360460035733658137549851071420368961261546419815759279052837383115565972836033959132947578714912132512536776080848087474109697033952822852333634597512605560739203645206036138162444688817978023465612021378418742096913975041405441823161147071792912987643742288353583018390921870846704849440839060824519422646506773457658455093374318144214921053561653821909908861633492422200689253770523389199004535537233679080831781886257132056166650820170936372677502102163935714615324989348108824735050521829895909696661812349224304968605053676069789552252720456386116541506961973355837111088414717813535677663689795411517600537928674375088788292825974660814628660636824993493402420623559231609283632793167670959411957039850001777424046605151946445718586741382086739195336577784799152557854519226719847228169851507207089382698040784280449713229202259492273744445783546691261798537901219761182210396994806779520661477738753352527156437415013505348879949304636390051571242984104722801151918628705232937201610885433036355889642757380248609776668657123732235985426369228175486771304058101664164344579996378349861116305008367966876012852656951917700701772293897413819277684519821735370663260021960629256195551819151942231752410216440531342408288178420965360000153973557921683877449032436101554946191216222239281709628711262697087420178074998500227578945116221254218096373330473031516718853502438926581805066691266756252079105254803091279104160982321898077930843558584803770154093965831518186422621670860255426833897851776973476424456964968961209525489881318453358085527564500140019792336061610870502165873897780126692133000773985552133686634966802047990433583065031378065530479754444843739209171665519693819236612476422386917071622698782415384723720801668865129224022614403976703022898669855834735998782457117982568381113418064907553399753792511461657141408348562324400743473716577564221376189106198797045319757008512422452213011322075040758065097782411724898530100984239966893813081195251491812334456758212181750513638887596444681386432225830860141826709132265216008061388151478689563717882235609959940429706991519288761635524048927946057796846110503626485426407932388865659836510426923895097309489120614761146297931297823025722879948070732289293678187658992106851934425588317692112214986525122217609266019738106685194547017649009122939015792631211678839944742580244909069322602983335698715473347676781056037491548987612791760321331672242833740680498390776019440952569246514917302861185542865670469126674629243072075886196433085790975385861389140210745158350463720613840921186929055631006989205821987004335861737189261007239873941009535795368738450542379119930544079366222059044356808875855366039232156066808125865333017135052960975450054096747674191512257341308633375654663357949071937920805973843010583673049456512942775924911142371101373370720897630555441782080691408069523695702347110298628840780118260753910337982586639067791963889486887750251142099479883897093940823458762748834963145515466272363744662548080096210128189518666553148190917579441138405746717962113245707797119540623326722466501720994259813205432927602256031830077322984470431726281525051878125378195993167964843491050310617516953203892665039427273136837255645271021380905941611597121030514204097151584508956726576313234923779325327488807642282004809531247592445459148383508702817043329792248774814776170710387244716206453244583286280992070057343438705873926780409058793617491148075710316219362450313120146150458468676626369871062621780823912102847155734479929367243751011814468811984359059464348084487687182600467957588360305814263824990681654784704429810156346757991192357725922540011841703915936800882003726444404562918566970392297577799679434517618528843398852588118316855343683264416671469876975085513603647942770902861476030481686894770681017934464324201459606872159952999941131880888737923026820693979148521001516876598201383751782775420017735371352024725268172342796878187136310972876558475276378243007641391765375844266468035662916476461194783658431336982160687683134940233489227903985340070313305662018399953044208175168518380973067706961339197710674920384905270833332707543678953865206228603032796846660440919028357009473213376430504191880353853542692633332798856289157552935613880281156875352959559148817817965567831548618115576369340662211390167769853284908120876394590699343773528081216674157457619083422631750997100180297618774168689714533147813196173613227421558214719619548665547368333133635663726362521296509228941648930893114626512303096583241921789133508959641823128977155960437387658423035351708811405842391497518237941373719933194726647700657252997968120655316492686099173075584023503086488442337336827716774034040602690832594673128981642043055743117158201414741918205860595399530775057531279325573606051359000888081193582213098164179407868643270794431767681703637872631247287211865799032753516906375876414830820212735225397170925306524314095867596735544101495139944252376808128378309139142845740716707025556227619095285515482125312421337510833131175474916038352077770921879766227284539244429029809031971067279934694459407640762811706000528437854254149156299377735039329484569042401805429914603190424906059544742154556501660184228974628979354905304377374859756668275303726849203709508371028630599136335328847187040311544896254202845438112446342237157823498683522788346772408035212433603435888675336417882595993516308871490894160399890200563596312866100418080711340105754468402406347446971612277321334475572176307192583292637391458853720545236713238382669396776226093675918733730063753570973846247378010603378062568729381645205895693867512995520052336253409816904120217462029523086159325867146218695928508529165126908695976085859821817915239388779787568686585072072121311976126101312607312514611780895372300335221428408249144264773763404908125052347659283315054201194712979042631485398503205154926651007856653983363581910788252740802261433081540787688297102859995188651696828777905070973286469306989811206564290569621085835437497685400899593000760649018496018179632311853293187519977531683157086726968431821532770928579020052452672118128669013193762974905241919709475630336849622992774624968649398572911185373188265705260960242849243776818860270288167353018499617504863966215409343303524335670459130140975754652547001692614452334614773383989603011455715696665726875846733009073167062759905953031948406255498815332738018871413309431613831320473402217621633272224867373232710577564645403246730770699164325537449947663546599860677589805040772499841391109164404703979072615463475202518706992030711393553748900794984640860911445783684146215922067624546247049914017094215563322125473100860763969541566429598865257245439584457071547030143889879787224881102066068421463505061574072237821456467684512236625429302001101900913688396020035843471576770646051843497490203249872595324652877688916224186426651274575862670405349666981694142208776564043232247295007026561956662485781152757881840033137116025780045479264715663699359912130331997305846735519527565150831836364858127235617038878088335776171299217827365254542914787944646161231712006604010092600805140935113356367158447516712775832198258634491538036502189104255673319279440821179574842636824479297144990397239364510700997066060803605889484494947127690117877275182426890422319187295088672782657106181689989123156839993869466855320473469344901450868388569224055746217118815310900712463185916768036556349148628406934263617027800935846031423056145508026009518054025043952344500430032002625207562066851419327325314814382040987294973797081556996330812230549253155295748481175398043473018265778431449733130110963457984871976770478125699724288970196044541594296493212468876509276436012468347648575530692290556455586533663386729930603595485829210802081757623763587840628968018958609691422869796227908388575540258713570154925283065499509727601643038463720258973937139269680989076951573117344008595668066903076773216232232574006886777362847976853062683584105617329027234918618567986181285340202122843705453810966597292351561211557953118897347853189595226833657432000015348644477306304048777404953873343963241991017897832753013575526956159389184979893647943022215922801069210129067779984088365818066144480687707547684346187391395016222386096914120707017197997984062017130792651775904476700609831235836342014459722604643046320008079308798802892364303452978642489147687638335723330246691039434537584486120541460104076308874624014987663336391511735896766323720116724925320396855501190524908070348861232175900740228023760115327721303830752477160649998186587113008010822710463547905982871921250705468687396389214407471306259243016841224463885302441856627476800272854830470583149028826572870228377152811381313496326091436146056252993350153954583213023170311028174236326921011318883769428119603158055442889735911880898269917749336127334138718133027983370572170189578373077712286789102294270226617512248726890809077138090020793595850259014845933913376736212471062487380094824795638361292559889868428418471298958640889892763817598872850174794597823450705944774430035361405846393128765814910060351461419438735566623476270968861755937527530613655533321264710076347112838305481672510824083224369174216202114057828022209167334447154310530570200556652876782246998576005409456114200960736739885304509904017430512345451313525752476057558865654823275176679452882649961311948164463354946069034702652700278406097900213728092641393141311115978894119602203104550407398198071428061061707519468714492297568841626457739322857797414528422633721230196667886994519353772003432557829590404656505068999738927089063981731290840480894047832577864028587993636967115718686974076775771993127722754254209010120706964338675221072585695775893220828825250880348789032046263272315145880401947441057680801538029509046104436011322157182601562368308386757505977978756879223716889912228698763933128454968226672521242119454678970596985726004466254489398256965733378156113999233671678856988036798019977814867688923514731840026451137611549953103171461133227222896081440827020269653765054497820601235544629938950043592378663638174852338648624802387399876234120105980736503209068124643064211960944790130025657279142640771640339751434927981846326575004519289868661830802791064165372894012391424040561477204692710541215937623498080343281267924047906767659203938990496008646730435579107027446001880740423198836108202788279795362812000377048045353946776270624165837706555411811576031204103785251368760953902930786918148692741692509089363060377727251516064641397259189552935663589475337579054746341340382132470256352250245265223205966510468738580806961553009035232090618775098872323323206402372140254183651854687100873829609893771681898099072738915576010630311797016301974183831414409896432387443624570016959308583444800810349754522281850273400446065404478535721987037331613639753563242015148825803144023783072399127404411783164690385202706245314575158067032767030455728963848396748329621006892048089291821231150154061721533526015855416927183354843167766512444198033265535770180934470788840642031517194919398410858599340920550256942430552227731144585876489227964234723065105266129787596917032721499630695234230838266914263417456419503136309045952938969453018715480415304792591981497587481803098780015925013037981821949199665596227954592878326359864221909231943863752137246531695942275308465953589080096426972833427680261635281267570560404479785124174333919459429202404301970021739762427908340493432675388389249031132540493242322930092998997216616882225662762271645666698259808337524840587411537462220355498803074011378664713653660433874951415724311996918955722394052015278537921415805867960873323017768249596701916770326819115566315405207871399775079208057259424308138099794705683267767046291867625132616611823767056528809336337397389056840326916526385793514004326506201422914964925475003878625882070406788490200646235812810191498839690639532191513412640063156785085030591191913324182514378170027735568673175833001008034444287360238343154655913712298840000648752500140525774765488674189273407356842244461469054942224292120327833614437796273360847586994275161768049939119841362426777249390843519676203684730829917732020756252590186767567097519439661707261643015324014599228150054954255713959212169835251381894680685248500707726971374142967085831505197727732080683148227382255547739404648084501574815357955636326139785960668777174013297208457783161065099542432419364929742876066323771228274746872012492675234635775482763726917472587643979484762622122669127852863359924270089043831526358150346232531829998426715718364055740672066133462002782787438685161297879767264341425435860924943249865722785942945519087105533148950044913332563918065217210743567784765468384585876375796294930477245272049374756262955475195732804437537188014035340951805788666731938988086777993458136209757989716822617225779035877591437484588814045831344286739606335650926703254128892544701776127805587529997255987311768523370939337564641914069572498960425675661442075743735771802267065849585098271893436821343332815979225605380267774955912528658969735331487603871062859145031079656259898028066756851839330229001750471632105506782086714850084373244235164510629116561205788742902460093685989231584911792920358883773032889161027246318773170260954772948107852864483243596451934648611074143605317870279930496554261084492102408529166297202392802980941231630866875137329185363579084751990326826045691998762429603052717811620947529152819236498270175609108205163658279969952334379147009577086948046448772592573117164571407325333075011836000125342376868543135856318067341886639493969773431193665706568059789925897108628381335862674016183680260904884086465604747812237176610106139719168831386105567248202567009197837699820328925973445998921211415849823170888548656232730704984501153920998085591181645877663972877020181340341867042766421384564634065557260492746063878274527950149153555731443805860319974048328410764701544546045227273968723706286242864133215337986157059870947612251637102049262308165680087648586278525556727271042892754763104073647600452622469833459585636953593627541918671457300733691892080539097490234618902223335783787040002524935065381011721477901520338558538179043239654419255795506154295514516742882389646780662569372045105316169395629241585310985953020681599763434282974301127465439831616209136251908294008296767841641246804349969842603387327227534851826853724392350818613555865551469608523642212479319064977562545868556549493387232747113114259274870611688458645412664642044353089195216379857189326269745734726473913096572882372972285847025046034005950582143070490287240124766087160974977430575781511933359430032654637803195092524531526540500075446956604975291379641056380986539053927624239851946333792257667574112032475442598235989957769290703447775358852275089607549539304201920685074631815875122615004629517998784573090547484896624859375372580629640936416234469479632245176224960051334182855366332972148437190096157673849328663688169205942596454567858727989652624913841362546130817373590072066738029869384415452432780894683712454962043089102338718990017420023490167853753391676331078517561428168047939431817908254936956276868170766841936347527903934275065229252173303356275642510454765950785053912455831733215081743496347521570462405688149741407858334119723128254408820923634194274098985704942052488558013337126828975383498098069606822715652196437773479942232558440721600538092900050548443921745527520378225615005017892938772937566671807485254987036014647030617591617460335409050229694479896212814553661637526453173556969860926020593620523683590535944016274118037840873149928654847731682270479706622721534819125765205995270154640918233872004977546871506065055583915356704445739056174026221669407045214654010720052998344704778044722202410851425537520512254639021059900608755889772086559171586142190451777253260233487896174548993539379709142049403056515630410036777827624759213231188428141146318059981642110281993731769937315849826310972169836699711748201141587001200281169961232545244154847475170388407175217848805135448342968195859475299203569175648430630910399659829026607343260153022998171269856713753934073942616646408081765678551970390128332402257102561346077766835129832913996307983617513149426099347394225489650130220567012988815448181150465990983548445808245977922112988504566194215625249095414809158277974880015274940717683806378420019566305786805852041454949242438487249323826027929720250747608011172454120799799644401146485789224028046431931753782175664101722302469745207287848344646376002332095371628346829404435443501751524387957561716414444097761623562333057799652236065949831387915378721997513042271092843396293343813127045218509846504386754301383933829536814482347311951901717000888822785238971940275995942468495323518299604107760462271305022886341550541106018998082924517244236094076892501970174029873393507295549720128546789235143535496310162796044826580890487647117699224868432424533325962348134011046156426160941076418907429522829824247299148631435145434500493308966889190549538915221754664997704402376356489789142548586608731766847485454261364284303443161016893553464985368382390227775723281849231989814069468591012255880811323295706790081121192371725731596212576021931973484669553751939665968990129613290659315567237077244659633726187011764360611358458934109926888559041921368450562593996675110675516378974723959009669849335585678200402805616205974038957012147391509879075606763588538008670015349286245287322377342700130000172204485991578808642087707943587410427574125343866406339559498562561100897494351468951401557115230242769113718819404498814420419260270285129688882874694693161435929238521090675080560957329611940339736776235580975235427784319742782861581666207729505925335742524600139306420590764339937984212303946755999160679127348380057011914965418005827141752642979353459892304284808959395195508005623176994808725214562142716731132330377495175696662105480243839827154236218213709377319089879812651813627927883139607170511239071891082967097614456463602848622000959539367707144721602706213651067054197952745146677135743281942335549465450650524600859846282227360072167258160420350603574481145557045538635162908930731650680790095199958206789914392173413075617267512304871471554607643740303410142569911806136628694890716138887277265373273258825250032543144721270200540607520671332269016840660280707173810186895894078506607418419674458536040801759072221307735146287991259039725058831450913516157453774329418804094255647351145214419587703353142011546624364570535617708993006112616074998976202325893428308079589550760837882102657123199775663484644402323433852423680339625826394235291137776235259623971788392515101964527151762451947258657320954936404766150216842817720662586717329516947395628656196138037468025529019432875156478749852589552592581575661517169482639001534584776205550810088485668848625208223972922161487911379515234303056263405550597980459766458007843348194496378733477707642693803787846244754137429140253083556841315880603132350663165248695959846938734046215178789758417102458035693976584189803091801536605359682808978460599745900587254224642384431456318256228098832749663861657835306535056433159606474455894887343074705077810138358773683301052323094523536674894210077884871952493545716812090235413787101254770340553250956641562999720018378744226417643054579684032686692509324387233404303752524434538479791625741464767523195144231882338519820354161168443973000475440995942271478332864962534679033496473079014351373081018671442778451597266151067794653864625209554870945871315349455245148647276465407744959428118403336209636088489294746871072025046156567321083030075840620068944411927924165310223822068415713367377987801723351536599522449367695027027725524648880594998013596552200100556684108757328872859710833390073163915215319760087284175304925704910625652850179317464412217801301135312198625346795776026118700108157334516896468153019953249490414087358223969247592118843791899299282957950697431799385416735299314820249658876438149787899536136698826878662337835525442829858982332869380004005605683605939006000583461309012943861998470744505883227844466925529597235657719514319000095343650968558643703352070267850973271674281039571051206369238799678609769542777944085928215818767932985538638241925784906725446298723697370755985377471282230800092765089313925958865334381214498766077540395789170919480711447827954638226833492676537645877159662343763116141435215661374003722834740578514723421728423785726082479090242328096859479660828131509778400660169666762999366285598910283705093819113861992482455985456502994326829923079941041158384636822772667569203670477053468883648881897076898573504354234934882214985760603814453851510210818378081862770294710110851102724087753182030925641444753213944904229600309762784671025929110438279731444476545949310049561401225043058045861671141767950218291237998742980672812096305798722154591893813627571529176514130477196040155411592434718126329084672640107144666885838787517842231272971372760973927378478587250347823719263957164028313383403107636949972936842387722545577917591333639705809932371567461924678798000569060100717699813386790546849549670880686809861086627907530054145442956738744342425855124440790660267558814234591578621676208105281211612252194054427361783241764694717793194723350330416103812429131298445393586328197953479176899403484691398169804076203362851817351587365500311982795990035020292858639608001918190617700340247708935279106288421778761752013907695939590254266653044759233253136827829986602929938118293702557696980788919454132408029339022890530894784303749254918125031280518533628479474372853421306607137215680222493510671236868760406064496191392357712457193449511302574454754064010761519597063816279990888062906193514315627888367404732804488820291578592231617307497138907602094415210896867557936978499118608456293729770128112884838164235092334569665240959050839131649452474872709989866229993717241368606890298658722907243421972161761162310792930552606778295314688556417073908818846670524302804843701773930618826781051224378024861372839768734962288076165714971991390979603610322178555829790028647991054697032102979380463985292239743284784267646418459901854752709054630333297628730077589476270081379864764722627058781972311452489088395662302449402029870445563900085629588645295132042644887498035521943152713090172178057157505562086896380479771390369098679528868155845757141769247928987065863876793545072987365775387503849794315722697265004670318612780543775111938622231878702684447886960416665624784325561626709996154621459324197937088628386933135979876016851831112988346093624043856763653190369446747734693974482344427306155544839505349229331413048510728897419876237226326471932944029202066823386962226356359620946934149583267320872787141609346608761792483469577623843728041138643634992418386498427722459551585441465660420781634486006909629381307098480346152932111289294405952707969178682963740548859927642998606842705336853215733375997953442071380879195727931496909784682756288237144511395073336098449158395419926599654461410680058585096125970997005461092922582567355060563398254353572378282234381368031817592937278655739039278622242408473691191592813773688896872980934172619896714297213694328548120614952855178458148332966523441268763011122442540155818630873008831986109700432176372818831874242039914040762430804367748614983322840353022684584542925791815202747472681506296212707387980886025145127039712671103586294250560586423209056015061159732425182426467811799338212189303194563247549729572217699321928695496559761110431752369534576430916405419387499495527205503368572526319182866960570661208504895607868125879445607065186697020454300907729704349002651733851697506618010869884856964163967289038873873203341160245296052732657276869566005433523880507188540935351657462923380996571857201892797083058918302702177433139883790502632070588408432450919611819854856755623637992892751713154599882961606217064656175608394989788980126167765762643812557014063455734640166827645688856392267118267437385495308649393408889320678216545219198861630246419845738154455762036932676682790240482531233941738036862465374778014533828001212041746106084930455422709337792204761004007907822690604883565838159534766130732167457452050349385476233555038816409805362995958090195735903264308002855908431016823783997122182232299137029149086385580378176322345398059869626285342708342259597696169656010488976747903136548524665759907065571431416650748636494504912723705494347727164307288081147673100135368336768990962939718155144405178753569562238719670723373715248198363894043595933816484063895235541609586019238840973895390977335492948906694543233448377716567979744314197174076923613962680139617385929759602805706581895747192494958277740801238950303656054110053621399258828719149656834639338992306823888760328939833494980444101040573376864874784546247314453369758312788326107147795190560545698236984650529055968378295416415720117881512324336780562336777700091182348847383536847005248137023861648640402745240415122942356381475639224328668796440028193487642458501906362341090787700261185291872729241842625555474022137252421950402345650308614328852677378477143717445073444456905011176495371169136378823212654376599602514537359401231919397000010519717010004779907688883736313789733787460119924840197822570033476867841879806176044312274271082403090087151665629949086302387281535832023445218763803345986929091934923572962512818937746807748310360434860266489989641048984872080463127034983914058424702557009005425817352224354978569166148165576325616626938804779073735256639640794234071867329540253200898249779930271748601322697287352307012938764252560458545113614758799315517164767761663989514255188090053259193194456951472908078014367518987838813973457041183279366842748859246465310564665830549010807779750586201041051829652326775434097560691320830704779207906569643148717074718939377555824694925002791913420210301556598415951220842226513661470150453500042483844272068236272714506117146097177140568833515128068291295209770375168595600340879880988947119121785462381509117346491389138580658720856161866522831693921022792843074354822408838354595684966015454973852864365337710514550023504018980335736072227240003935237388296071103830421404895163126301413187513264091417288927049225844010789910914114529815821416676773441792607981273323879196384331678060576542167489074653474645624345603289631825997322813069348516586145850693601926632062943134301825424020647819123708328613207789468711162125269375513072223351614494375427253593540330778116608765759223720548897803453654328832225026440861250255185464052901722708699297844901884116943129748778763794925528284577129102861538987937927955211173877863514626234737112613492172469747032694522638650875704634593682497924278940314032705211628147862256641583220855011535813087163400693658537508888115071881552780255988969044338513522742319745294874867929944935901214076926951511253154464505608092138588927416958791511084911499991682375292591635966040934669947545457324680267823104207897549615746667067541511000214720867652688102066953058286906058649451759555071519083097149916314519256375568053443345596549224695410302308581413637892895415856132802865147312070693465053083436023941906935691922972130508323693941291669176388081050678739115021440442301997098692083132971298856550798324864364739614822903610517162390679662312497262378453030355088744738053746642536402112048637072147798088933248636524438525470772229278115040163172645012940712145886250077655091890113061376051173344211928131138015952628126833802293393722825995381066126898992101247194142534341870067530165687365592324604180308059543400678380989126904170886327235455502971033668207588275755971929509609952176543688189573096575752896508651835254648176952564254330927576396835316608644544883185271077393303452782059331398712341063620088426323481640773381541641016416321149480076943015826719553776637234309153183159894314772878397492883831898507982342713999475031466176303011291395382665896614726438150436889666731883192869158359091158486394122726647059969636964550963183903073520708499143581625572170696374841024347672913073217948311691179091085406844437029268185698920798911355501930214601717962232122241576718935973982232335099748799256678695129149654665358651718365385304108289082010929122601838027543267370743781943786238451614346922634953622903578777206004151717881554738565946704794735978640752572919538409530990090994516284566594437244448140002457290381321295902524938054512500148979669978074941157512433319284489877310654695049476909097948290277989191939058243936676636663815279878163824864288909812542912451009811462857799984583546515152712757222438239275564975907380576055413237451024757706574441681175087508900100070558008376498115784181001394064255799301675769537308497195446337108894660552771746846907630111617424901976717553494045446187866345131331102996462305284650668299403081206371223322111738249048086901672195136877905521825018083578621253481857225675355608582170208051124464505001507221475789722195352318246145140879695150952072955607039568267016053426542965874322285255393673965425194973976236485052834849447954287666316528066063736755774375092698971328464970804467724663608377035998575671659090976427466002361730696293484500526898607847193592780169311966618707892959820471609518575197790247774264570561460305934855612058789481236001479703931439583884169977623451926912220302022778045930523116524748067849267246675414698145524255739760020444846669194349473614782673730824540943954388558625021462429383643815899459812985282454232065766598516348361139769257591469180926203297697856472671524578754510546931526581001400601353688760940721381991209898560352395928313679282324859160368192862696392055683243465431273048793425891596476856037060481969960488381090924833376752574867471649669781012558361394005162016243356205326030139406859842811984038374049788619475461735364887800234239997404261293713328840533287111447100569411973637130276408179478607454012239404305182173165310056632514770943008029701735378922568249350024953127434783044465230162715432798262234472389579215961421512457081092849329271144842386196135983917487171600225374829269443536087260667808855159586573213072227044127882371562762436532932723150569409250651558964546039658868154220146510185124599733237354149281561833420242807588348707074003645377751124295848208700971592469841344680935151155022677285844180304451734443089517038933099675636846195640779411254502920437375865189293076733888274319543481987533119484965915026801513561835277463235345710019262796544957843987843925596111609685415275192437242750776124577742473275961136412152204253793885919479264046525264443731614841367805248932612768645629540116599056169107444292665929115525904845729083968259169158262648259476653995705125786254278957648454793329210177221831171696074039695555215558247074517727480757971420844485484874542518395685086736276470126704997973011771735214861944491956794143929333027350105886750899522211632548511392091931341405344518199488627232108946786545511119201277583428272212989546548203387787013993866908884186847114854485843687295464975732542483798424812271961640137464039845665482255553424106667535680019789288941435977433612099399760431347208205099162511430307142571013712660465569392172373650711160787245127060863729551407566048099255036343690881488244642114655698198319970189301946367588993759175943319572836214032156038109965753763803655626171718145964666740265580961517022849102206092768012717335203006456324446472236974036489871035553528671753673629906835302668477100193023845945639996238587976517061450275610487521956167472171883211633794503680021590300945068818533881469346342044342054363110627788308026978761212093275231339635314487463060307029329929408885519247289059143723098642198096451629322019397951546739482406996271562112984718611591492564773095360348497305475430692362574351733333033583372315303401559584724495752091398986895853430545224030705498069297216162977769779706304251140121363290869120743417935817806214573571475287055381804721796270748958978853070095986545192571483431558387072196530519948046293808840953682723932198137429299729990730096239453009539372238023547775242964677458336700543654295454081722937131955439280675104849590545614916733183345536862244790334008473001369406774513063528270499812171658782515676336299049024617260717441455463675097570314094471731924910722193422175224138520476187103801548408397717069260273137201862076201592669509002168133654301450259902601362387667769461407091021774351340304255663007595293502819909417312600644650128911514916239735821612969191985053756532552333242849424039698799971845318999317934440198110821486380280203339407401258854503395538322170975559238446119576530055218293168982010134072217840928383331797506166090425163916245806732493874517542285652672490411763698421642957608192368468049669680471335435284543465227993359921249640219354251212072757005263170403245160911938595986481665603857170838047730654619367689773301731301111752241499458510742929399923305867094722437666199217650957862565169544690352624817192485987060568346005742442693630740837531610089140415681630635038519944645817931334019504754652468200639012670906129582910743183756349711735749624746615146558872128558653072663972179960290940831391005312033479236661069953072641197512830995055788587387037090948732075857313130548596163920587437054679309856155036740314596577855595466332138558368860070374622093062440304282739712238093757635812672592614759305394363253386828125996440641957690856778496938545769353226464041212521579565595754956777657024293394293932726992653222846526283371508711319348725770482933004247486641269499214273748921388908072115234692423140986072867460656494311410699536086099047920030010938411526872158121742848351124436219721577749666661751479481034424492735022267684503795635961147864007918901030128375500744826105172507229426016304966489847493912142927769541681622120112970602009301907430414983959035127101358443652694949801074558632184738727860653507638066238343107403366818574725607527604831112146258613650724137200171664375036737766205490000453250805055140125216854914883466254004142391095874106982965747614825665345473887774269208919228088315332560453632676060198055207509614094596922008701153811716874468189423933669204325891545209571276487839252422910934803745532089784560899220347322395869780075949740059168008500023796962673445631499455853012874402127601377242481451941390310965800131653774200288829412419388108422642332647060854543980158436028485750597056386486774437386081146264011936759612498112611255563370865586592869843288690226308929616741068086020401561787081250372565517737155969474534902083751537464207400517144173882715716049263456349382794556482262739378411724333729381685908455817218190150421310470325479509089915468682258133924136196232093264810573855810316967775200721937040440638159402814012366942666100515330395856497603220504653843708679724455758369198237112904636779597624801612407651532139444344831807217153569254634806320289628092029221102074920495727289397380901521936550867637376654003874354642372854517261713582268929661906469515004499584467311669186530676944678810150324612937647607624469786537746580194858697300800288061311301682136820280928607707106176606732768564540426036204560080020432234272192146369789447650061713585011815177079111892603973886821096082806519992448653398657150886877038875552507007601366096308480335223696256892991258631611022728728561793913652273246643094518750353116195575431313493316089437739131430787538170313483804977601890834869283955625962909047717988637296548031651362110505428458478671237924347280497573616087611984964634496817139918404526273940415621166327148277558139490748207289218721079619106540562036371325031500292272188492667138479541465424737059407597755119648436836436193971951145375587206295507966074466601432348414115411515150203571443045101027507339689156272810549077596881112982195036178542957000286913037833875551793902580044977543877611573147469377202058976121272234984805424147635371452153126211436584258025222832204557219854091117802991652442946048669731572110274438653255946888805597213797749302008057642516753750809787900519452314284638302629302333717661666321145683022109383770087444803498621830937742894576728325481171887019511846379501314885982099334006890643138688428997032034464638407474516176316551354568543235869504635413903855773921256645009846524646342885301160847459590330589478733830380437532388655132986572188069589357387317823280377667345690478788503648633631935753713644169551266191683720945432034292244786052542196253510976943389808537129939797598077411545051323659989557060816380874291241512172044464642465713244962267779311301236134535047836288224054417971551870166237353688215164585995321916762004011060200672034864560626867892660662373295278869767720325323666928031975587817596298497721301093768748296020071194445181968814782620251063129089637020713543928630950651076665747300830416910579552287668690957901725256533399969532378059103518371641503142963230504746255574988565615184974715695226436687557722737353191322033984455117296752838924944558581645665501411765732194284051639735922338697713453689721762309419418772668515772886873870400320420408459044830355976365968404557820514349537213548726400755937207054631331890920607876242581168130545007781226324688776738213414169691260181380230570289773159578833670048476312867894551039148549496627554311974200754190793626332242732226108201335242618253794458389128490774877753890590711556201310743284563028360608108859594702514044471500645288372974061662931273505351261713024788098473174208811377714983616239483187494096744543103605715158957998865613978300205025507642692007495800067559559257467242813746633876069875624727847880010232445600873523397868641708963626623244267370529430358808505973547912753340619786596580083514141589746502367919831694328992926219513657641029096129863290365213011990587702641918526561603839610727580194745156376423814019416419688283116573423151505605959992453774719976452902019152461194668824259291039192570331315232278319912704348406364167847740907785210983256345255802170786323836640984983542297819497166555213888563534037145388325023403629921245248892172567157895280306001512453876305233349641486509725086051935641710995354649525368289139682539658025768765034691526305241660947342332436096291726070121396467109233593550274022387592168279914525715428092304781002918833255228655212653021057672077594320256351279170128850588931672258341344575666930071015529086612165923211703532833534397078998855202614643450789060506674918980312275785279723735934754524964932858235862975556862125651989210741226691265167200644119920303760463934894954889814754497889039056766954343755312576776702898861067031633879066667207511119319896094212678044794973627168264635376401307123943922364570036656898358422714545429981020570452703881699447410183616087674926966468495968948883120272979118346058158042490905305999606302510619081259383350936284646968931582900954790938527225831737710661237171752160614917316682630554096854112257967493860335639655091053268111535737192896113952893878801954792629999573864993012687343612374055057262886161737300569916806182569372786014905445058676417737488362924954204141410139838294732452219123585284635055741269565646311531298534135056222003437858621982135173174075101765649586384754893242231647160965505478771516565129192206455739174366914306865853269671276665276496029910444572122687999123597918269436474613933134574525090276286140266571906222542445382386323229771463232693136642247438178072671268530591211176754503464254843724466975612300521814339579145459780466792591408669593370205120907914991395392288541690627093656732768782726089873696192049892019187142805980988199225531724754350298969999511698394788054580503998998225618218781820907875737828385028246818640463913529701896304281627349054014433156974381690420852811982505868640886246530433281395641823929994944724240433240357184057350736600418241640664126482527406660369698041608622496748300871929801536946762713246986122307506420476588837300355477693917676869160209683998116910653324615431664904147888319723275892701809335118155363101185643212247190894734830992221769671700829240941580782455635578299317589582165497643378410816425386331182026279877007626522518586930839841316941112034121534149285648014181333780752420997281546494715909868856486886326841235434499435337025981368104488855596951798149727647141856358280044617801871067698943643993630208442223412957807062156089917811083527290348553218271440205770886687846586079310628211756367804010650199196362908517755208621094596563684953958186757314933009499111436113341807572697961247898178666378340778113231080384392586701308518090083108798104744049904724291766248088430360584056624220983924242283147218051174880854860650022437739036724505788791256693274018049211644218331114056369694516371539838863975314667619219657267494194279237235383400857414805044027419962378652709012495357177718241336229412316992473488465046572117256728386041614147146032592100680998395926048252414998166676208308848861918492624399933580598734100822956262325962424622886384889583084513248009014305878501728665009458288981005784392397882156400270031579641522025423864484830332784962444377489309512735060655783624377933347024901835803494249032860077315167172841667653995653558178482118138970468493147570038816135258544852684409719701355767297401530311293746205451239908713625000351211312409377201815956107733995074688666968178237309833372832365779459334582825972675206739051971177677220492517366829455370783786908074895762324765971317235306798981926778461039831057614374644372430321941175188530440116937960772863514600509869418149023538677022650522424272878102433171127070861330587897160735356516525670209339291892358488342914499646752219130129828442094032321242322349626995850861838428729641239444041990354626952858193572541986278437594232622243773468048158359774127241012467520352724230467553746176856700247272457026693316346134931352532645843122174877107386061801167659850623679651735568675904549618424059171954289170331017390215650131843815825019119337885069416235342895120586820148671588731718776072174310798792724335794500607939724147919623436846576366285335388361439053990157632915263630061528383851033132624137077713113993976267871684176186117567998291184072184826937666650943232956236096273925924348472948825659396941026443347473726539980316442993812031935358906777735870493523447204571818521190470195354409581309437906581604195592787672040214416424846441904989029539423087357515920009122893658187468246600837433975870286246244531366945889135334230844029839328383253054533588415911097015522410380567930816797686050205554394448141896508668701049683531038364551177030676557808722141679948554583433355610347311874413853599648056419237467876688239286037560352630499512106406238940370767822643081109101898705862655662245214038412190725111529030748985398368863790911200918677518483857777010072295006504701065157952143174202257987695585198231786376344483524481565191650890453876715679476155106865509057213971880590902777328327154720016293184977617191167820784667893673164256989582886929176139045842675255058691407701544429777608248136539450636108178545796515606193259710299645120811132524415446846171140793412495152511230798963462777870051432923286949155368356825524206564036987362321586659390279850205269617719671469462482727371345026044707818430451913770323270914213395323664007759914826614741335247573543137173754279069856159100406416437911683891275695913273882293291668531451713535141636035598608123501228236699783204534466541011640851241261562413803813743526709282616127049919027067650084860748922777900890498354841092144035776057456089788086419145987050909841327718878291565697754357605589881521686843441699199404117350578772976413250020631373271222113647617604130059717394896004154584868137296923753643939495947342733658732166261854317989723617304809384164680623660794554713380151982507717930447175266336655897301134826241518427594022702673377695854538005965516608017497258487001972596712943291886764622418269658015994758224338697757391451220165293300527995007929951115800306742347275714779198776641220424726674425212611116631718526635345066531763214927216297760676059547523962737479513032912307359631306753589014815355014041840165167807522211984716619375755432257869929655130247416929746732885185724720389516051245664182966668257291098360278373276191250803971536656623871193490180795031340701164760993569379633142073546579704784966484749246817855819814964553010495161527733052780878990336143868369070883988663234081801480111124073919059158662788587749189244863964202282847992958805830745974370989120706078728156860071957567116457361858309333130563086568423260112814336989906318755536501335229530077716952230045849217742055218698385765219469766361805424424495900634002878565765626075949961245092192667912505433478986843874919966995987658480047361627158144527934047680706928362112268392386311375473623009998583229041994864549917186040668671148835720782944878365179946255933726542512837958238665763605677157442657881775977463547660227464480527099868176036767704982545565837515147381370186552688284544539223977404277655408898960174820121440887025578123952873923794424449677362088354177714580030517664755520539493349530609374724596192358069119593362202879267145956940018358657825965314706241054972283153683052974460571825812818454071847448892271423354697738004332448247572983333926362081920246558314944433558126493899285207494999300056772623671974641913652708712518825848370327254131642730140423995384179108757091003832992814491405759297761548674350215953723583534483124318052820747685519124608357134680971602778727265431527448718334298277616648753889889949075022674820392421713707561536108097390888992797054293197133509229837134264244793346605816218272316026224434021045195480638268480920509199715025110793843634267606293356976543852614814929580521572003437768772707234535797117040936874989428208265122111890814468418119665804258082358018826579171065512814460546632680753541907764744342229072518636193682501626901855674412207943115570869522582974107821633088725553005647487156048751225243430557872123300664021043940901230734423272587094546883035393446729774266754844376530055094834065255914923332828251864976716928788399439057857256577956159659685559655042204533826625224939321506408127464021537876192081344719844383891755853040501899311601150109506117581403047342152605351898969825783398299600054675654462130850596617271804517389206269574447969224428443069374135875168913657868698339671097038277308770490131572121858730768657173670878209311732470231796967039087229225855583322664554637428314580796607302249092291791869786752568988385441998460671690218449922726385538895644734378704263162108748263146399720088049412861126688418516145945003332652499297660420939946527385962419926363357062166656231525475049529897760362641815907525330005753372989820492716541663411984328998093969722186392392460168468924571483222516969462915529240020394963224170649143203992675156398261278656685441612260260641242596960107663341795606730686356289807111280401159394819967366248152475583982025449700725075655912242110399772086910070733448341500450638495285156530867240716208854286819907926881342427169656996286333701134609157468133622691880311724107205968086805133565465089299690700827770769345613856893228941412573946360226081656299280278756167801795174587096605689984005271909613468391976643656185713079256096144925403474499122269868333810022046721153900047865167318281143165081078845548482195459381243903002703105755207227668617510903403692224327360288862966477524267795736853521059855549773352876074575372402423114834384066828064450662568131798991358526505060935557279235341352787256784639639519473716616690066245837096967726727287248347560068569163738878226344592465299977530814524073959739794911631781054479825255469361652325606082399115627233860315549832976420813628238463784245680838418716344797798377442103898666637637177730200211491276744078146755791863254718407702938822404796026260227156516408322457272046946119508755213581183275543053371685213799214202743121437860808717360876530848241545405652491534889917420799290238010177604933233074209004720715470369712845831543017933340467151067481516005298145744493546015650742505031239431201339074027785446212000063625628067307738180077837447353781779586549932076345582505157881952300557534794466058053798615754598848420462873246064717176250973220524590785732350855798468750353739794471027955357023152670491007380629354039759488815698687107120372328378430458683201377129013014017221430578251487225083162737285585606045319095238966676448337226185724488208613887608838282572314848705152723706378205878232011502176948648721552813411014761401752369485756482426294538694731447779100893553961633400083707678290611899004674303479873884907723910394278220659946374294094142288937169163952198269789447625755878031874081092552180413740029716180751372204248275424191666068697501694905961195306215230994322726734711563712783420216370999013980267975574780801657344308469656076660719261683767266547718759955812200006214356840461841056905600747211695609150436475892268711803602051658904238106795964859828001872277821161500341716571438513959118103444079201739978251926776734180913857210915600844226043804263869131370101945474131559077104953612481475530340946020842849361686096898528619775918053073319072411788556319905164697747910821970348597971959319072003266550745886982655942500383979294741752635276815274477235032529159085478943089300812091458381770967059185223779780176401998361375570443729993835572645403761374051870664665108162153895762090276801392844741010177546066413639114035621226050591962629606052131508562656820801166838626608497951451659649933603771528783627106438303036149251050557202415883919121538007933259002928511158745436185131350764587393240781381875659559619204535792662819494825079071923408414085860306549908721607470479125039412655648192511326568262520595046454061230966649287225282495943306785953272343353838587811060026311696622732216840878438736652159805442326449397658502877982382977688632495914862815490746052440129808959649712028453036795142336426881482213662376318117486691055657924129640327525641287658880159486817419427070365931304149424326145455404275129897047371139688371883308935667386385040223103137213045497545159627328393270836295344472417939947305369551835527422638946573072636507412695849222879226156082532490705423394849736613310053654733985076290602960347210703683458413279156375558590198307530960959773833415836377285262991735222782852664990042662682019014941639942965619733440230556201734841147248707993889411920500340977299496434223196325266985360733323927652387411230565719715747417401233817592967835300089716316963770073293946540119709007464204271485852844423258704653572622757520431759496090539203477137778301486758467865642152527854105457475102355648845269711234023243788926470141532995399896048533615231304335195800392374369764613876169052824293073928609413969811232637875293875756479756488472013019146819306307122564637052844957706380795852396491615738656784205375160619271734902489075782977439902698525795510650412744379652261043041947645254679082682997972279752000008406935558038498174603802616730044255392393257394947111716100305516862003238247944228645939242597771626923273300820722411193092474315137792859833005012099757681175631334713189320232867952610460478625822050964333087124422109058037050131932747194138070497787329076444016505589908359694646823338717834588547422337331280114357274239567218376035798585256779844404312410789835529907916935415361302750737200022114134391071097772009585560087263774643376544636076423237440894561034044646953638733118885834060222273379843377245736741920320428986649054504142016502320673888418669076606134222837581456547905998618421274095514709049438883690252272058738117308476494515473659939627491866302627779366272714132491899959713193998016691072112939123101594274583467571095148608829413371845770622484049410853523438726694258618790860886965105508494473254698169289399413769476534237722247013804641441027460255988811035842377090762327011060251828185688113245038126770140278140310378849609376674313039251890493745994521621498710794697675131792983847799944882099101162443365965077898251470453933894503656664547512281085403400934825814340318712052774804390273739622295327284814060365933591722087524079316811154721258789078972014309667367867791670964052312049619094280560316234497356589869501751014008412832322443073920535109149017426722126077160551279332298872020865476489848081193236010314010211088526161256836522435395794324507392785128803763429382416134220435363139271020151906950107215362348250932682452747162880704123472843020618153233411867609133986877672302358094531293390154316924132869374834219607082990713389329882422619766885235335852084800571508466240245319572535290616902839631812461967239537427339116373377553747762688771562903836906131097278281827180314551693305224254027575376476847588271388224888267485028892960780674508073326929883258192559095334589975147477501788142288447028375757851179855385410306563148413944031284380980260715583667793914120211027634731593935974737226284714630995672867846050495859107060600228006424863812758644376036227698570397578779638993569993822342658779169860918847481741175839703438665728243247824569382861725811130054515009353413840390454720076009068253364228345947750261292220178738695056979144173077604644849451799111324616288698195544218090266558138194365803109598278512427945918071968194569319387912413072632630753560539429456425123505738582738116307057905621779586626761498445601012201044849124375010828141837145598438230657259790743580940357773668300708456043040769386149151763155096028634516662510317129247675583422517800054152801812503004657918176212406295461214640128204009906917084830981719282264950222237644202657715049807301515457876207321484065533989193448460926129953420546009919727877416600087109005789391527204586285245980461985138531490082519052850090523840476858009848388194133562517919273184804408141502751843823503452712906742286552287383110248972666242155856566505779742329308181166462638367698138002253864662645120381700465467788639953231242617907230119835623540288410841097159223850976173425950670403480290061045245357090349239324827049426232121175559650344617099048930119090778846637409002337431923042646631995336417640875526635721396959569195373561918907219580324133812663274668893235694432500030388367821713593958744675440882627265991622884315214011986391831398690760778232151385957342618943947220661233977692804025299620574798543204834095764500178747314639122363498699005642229670514273666794622259983563647581483457677394663390251344391027642391807281683161024426781384806006770565483422855937182958581892972168455294015542370349175455860548079214941525816280554675905999409074817472059745462028782134568584687413118417763160111652132946306440327088088328390598415896063207906257943662171519228281809627404684038498807822114383849315989571378392170071332166999541526949575235141651764169713036919870865935996246946637844285240627430466641160504983484148544560794402475090637126552168908513551432779601594327287280956751822574477089772080331719083039411762554394166820001266957792422389299404892272597811354787148847878251966226672651678510448877521245328780266032560077479336358890351707328229941481257852822982865605715155479683381907559284959893538631984745185131622932235330481874733231897257045420092377812741710628995279064633050224725264280416942113082122959798266081255303589717356955305132496473416861114725097794274946875364277601647365017647061196113622618668214189040010985143332291212997374951895293474264679053715835171032379433713230744681822552614802213175323289481896820981456550613828651063754169782058182155027992673979205567778304071758693681494121795758135690643234993629732882459416265507574318950605420555379119140683851910050207635406242558791193541343857878283925929463986427624848975792840345030561317395804173230704831058979769032513353406225942836718014635150715248485296952249813397879585218483175061500836785549246520643317810728321402135516892595175377310114019029541662187839942449780176983390296720004917342722836966562259245143815099693099756145342388550765091141707615965373634132354448360794842201381679297954343419255205421671274256491356635787332644528764541351283224759124804465772561231955967573426767823504211716052000787388772021542848172175487005308156431893581660708326175847758327762797131842976306024059014160642982602040052786835763200793344517651201791887367610921563768526204693711983363890351223098176950637723984764527904977127408972933109730148824535190778447999737581098530103078699198098683390990573677200864273814197347431779585989087184372411083852133226087072031871125217648412837008675418511962549693910213856849335241249661176230956945026075134621632458553631998651068382510332198231002281052779032308980175290092795389119391879239209244044559899564827860522223491007479215022225607970218177680583604182466738416874941625373177938264133089931880985765044790644442007791317756403224926348865515882012940496619678321711096762802797426574691947121287669475038976063654292345491975978895452372052617382283988195323879774322968954720693556840989798270515760076471114238940498867262166181417661638200303521638130460378614840014274333059116775331087489501882234123058141499801969460238326842426069308606365409653074702235999392403707297676042969873628723953994511273349222808016312699537942224649236264898107894627746068316649546281261433457924348535485628198778170467829223937238016625580680174766005053678618227088698290204579490776483575725659507497959613848566383656170764944879804224920228428604594494709328083828632633912669174455660127159112022334829283893393003873656868405321212901448117443183923125945806876000086709485282587754219571912470617732490931401013116948700851731560149781391175483772649126854198963334122516262080354095968956101715616752729919798783663819551383554275882168888897997856980424110216848968336287908159483395902251241735166971461361194229630124550246772458905969690108362030091536144160006540149929234242675337479109246429356013982706840194090986190995313148414682460437893316169425281573225462836994729653709151876831107797834922100637711944842301106250527651410165698906429298577712279569907710612581725024296660211936063457731997748013014317968621997145126802578086453756608349268616681109131351427365337770121138441777061646618269079954282114583637565429658229044753671924570150507388433215404501527181222281204003987270020721295715719884125730218287610076819512446391756158026439682068787266728778390141710551975685019678063387792519033840167128088105514210228095209352721191200764375503663642211579988728651107094097508101539900561904339759464073331238645543590730844460218790757826963462152772849953029106219226023103544251594169390393038042755297792618421188777250791922409874253231445170155794952506648323756513997086445651939531069169752503495664656115427306221367051141568328791153765988664401102860904151826504364988081575672750853181384803164255236501138618400988032883256975920257152572662732449285687827221905902922299188900844775743984595227082007005698304204847072896576229803361448364357769480186270901238396191978801556233199729197467518128172567554910346894958930921878118991503280496969008710564849221084961195149422212315171567998778373019541889011762431333005356424466664504565406883664173175897589778610066071253114224148888742800799151191192848754068639484063890738074302753452317475978647427084781613987716319174030559174713680165909073327864525014950312529278007251980056169150112249375447227915560339486587324152367108795800712280208197500704098665169655148009429248812033645673097847482898013885170707859995269983041781240215463585563207074425235785762762748348484837630558592953240453999347170242458551042829943515591381628780314571902655128747777753508192102107122057738036853726072247149072079090293089692795092549494139790894965077798817044183561366936909619120274047336415600627316009890830024691904760021969223054999828135713184528990146329295639856420141471655422448509634003705259770459947184673312873497119884110219826329955077792529912419014239181808937450727535120045384311750419608201751447176604048957257513956562732583956236895235832644979881836792693284765078025154179599596847127599213920446342942398104855591261287896483674034105554342603391053704744039808245927077607852271081113646686249067234750312675167020932847143295072533995370119786478147674837045667604410197064862034049171464375796214264794469155736631897995410088361390659704801602208684474516658043901813262419802881661650744614391863678179516204945069693212309656205966266578244794837894228066074139264299122538436867585305025636647902994216045213956628909316382551898002960426578209243315967447007660700635881592494708881405760528315759488636190814975147935907057647363866888366497694380851494645973780092997163989048539026814756768800717591295424473426103085354640946625964183162180873741601675139703595453909299524866707228050213141191079309719376944121991640948922289325331493158161806728700253015556221686385363230829454764600459013412768545676514033255910132591250453887915092271743006813953933978072438297042713516675641812800708472139555971255126524986395945066014587941492296349290690676304989545251100805107262590595011627419491236131184434632735952485445302304402900104889273658537294103789361676181154536906055468880685930932056036596105876881005827629853892968184048584499595603512063484890325897711063807947129539780597839785150213438471409576043707747636141788608987668141934381111455548014287228553834450870963214645243403648171429104724273812993186242965349396437928394487700267734068911730179550273673095413690214924983334823588312407811917374389759325472577746407339363842327480277287583550662270499362874769315742731740605285885726977205766888613701665733957178854047697298511779708757938391080211843110621196601717373636885742438257417167855031462872182749722856869422679313771590528898910228173145929672725546084424641583493645284533056911490908232395446218168962378410464422463305010768474829499006897088902116291239609226257255993467493285404505137091244049969926526720676045947004596382839175466812739869267930726268531195275677908828219789499984294855710135461439416564967544148736751202806441912569553635288483387655047279269914765850294750877345584111086237865741788179996046958074852762086288874304357893403523735825858802372867393460816018854736650426567713124653015541919634636180788600669489700515469513078377602807450955065101823650500852022015218985759150985956221293664256255617798843812496080837038672499410425642175112915090947759928351959328569785307801350452950457315561919157422194505596369667461664518849286838624163318185677967886718171057655554462138055076489931476847089895254589003466238677745989568944223249166444165976612041056389136905972853052770282165745009864525140848273297650224208698092956383948480175894518793290347914671745343782182580345119471349828374148160930915545519724569214830403216508120311459031585436006278854049509670724450407381721280796807883967311687251884879157768851960639952752550565588137338864652645830078347881953632905140703522006369095235854833305422816971665962037768357249360994296091283620131962364479864482716012600324580220407314204651783084506336842941865409369456727402632296352603823599600159646535436549454208338458430850375703191684114469132194520261738459530284232467086314259655200526514024937827210143940677063049650026313297569739395463589654268799566553062318056727790068659264477965903868189719417688706983539823078585046658228848503295949384108271905735013901834421350476333077509995340617406101135939826759488082156184877157442576355804602069713268498207993709961905416617059042028219595914826838599302941460541575722913941556548080638057779710812130889827319670559301679132209978249611518004275716231258322680036860685830408291918945926323445656531864539931111167045634502255475765837136221478190433110715259926617797549819603833677410264024366658652512152968946864665293538133101250575583945715288425173410003013239745798312744171287773610836033550206338007857164775433036863403618987372406843654172157524641548253269328733374802783209817192495077264624162582777759020398609125082279827188682798070392413067680876978937906580519464115156608120427281145230413288894338472449139729879662332208179832230461403103454860474386104796102870788697866194042435098569006795447993014775281998922741830743872477016095850219781081280345677265011656851942534317447159532465021414107482459448195699990372562587325441075291905176431602418367071783616438940877898615132188044171173839293574196790553394880601742269407777234381229481698470711077089566601791520295843211603612856680936679607647952530057004016174394614257224760127371807753116938099344223684557034281649070790981533196566440664535297857874440679734788434883520772062553567747710315028133915785775756184474217025459318104589612162217250209354001646599257253689934703941934506468008286559594463837098718947638378147214286535445961924579408007372667942661183361992363375750764298688359946693645620084869476081390252720211359777595699407491526695878060399454524683815026854058633602205775220303573103724507479983784912410414959860601387828971440761705076905290969871502648703325665429248165411597386153430705666308914041179888355974234148307994082959438775091622336426727662737782529028033361500090701711426173683162376363479748948365373292828674348665929277890387591760223241234912978045617524242510246263119367990265280684486728031855225999749269884329980559876438005162832586052276350726758793279167232912072053143882952422664480641412555824971872087314427627900402970745397788612007101512346310831152132654871760745887829255354198039650524322109835984590873520638077307926227939304082200315821534660700194304321198885060320557666310306705531990374150988480393847012463637689895093552248260866129473826320472023269003802605664514210535096270179228166572497168529219490844904826866016767603434857391310420159128872070142478565997611567100140790043808779169727219182585877548722040958032561740978327090171118317471350955839285809530686378713357727001342934333612348617231108358532788290109917468129806251327473729776089017389794911403587355877131532264778859820558069055431097900437435124648029613408211506613322815720200033650184581008718401754501038225311996173628616227335806288479302952297004468711641641492060456116851686287720267605542107581349747935057096840631728014239859128448067900646633388985731710269511203692436578112028615773862489436954404269062037601862339404059284480155587456739595216015779224522830682821292630366912403795747787137826127493196264899307535315845215270772999871983485136241481361100814992201084148926751633197078096044194346399956909632665908464377012300785985820408730248981693255631140841738791287054013994708095233461756539372116486281224352665910730709889721237485355019973472011416442079421773649978420907312978857166448244455681661006453556043873791947990872034409555033206261039283380529123625133737636852031180567832306837159578475788462458259465856585871491183773918433358155534080663712677027435201015954355891856828837843864616004872176111019419963348271116010324075493998716911761292228427114314961221368873614906530162573923540522507134856818556772795118001396541900126079848959821568452713259137273467425339756769331282782294768543983979663474390649099242338266830534342607822052809724662594773682797091312636049384483566745278487354469185211973165259053743219845306205264164589739213985409261778877346933307235849186198206284300629013663110635583752104510320045074520590331331774383040515231795522287846018555460585762104919492314110657135669428770609406201750410622252463248803332874867537683183235159923025154698476130900898584356942019773840710595667760998083904527106018512021121720755558308678508543925453920046535518951080561576166317738188642846638970911819616278086316240522921983611505765337473102672964579483044714379810739518788630321952878054638079767347785244330484202276026747796352182092298675878579686385419521484248011959836068423030463650660266227010428119913629279123599519340806464346159854813411616077533796119726823104129084746671552099020552228747637792057963859241390980842969618332797558399720595031714474708831806330550029676261190887877242478871560369098092309112915354949091999503964861984885180448235216760526879048003589927314716527849526326163296139605333796490521211631863024611638237112466809004145364917964772560346263251949347350204141184914543067767651908294776457868630714513598574674750342710165115132080562076554262992028521440381292125287405787757976219997378303464520778760045395866978643382434076534169146263318315179725001233285700711324457548454984648767293983975088750651723034865994140721288766923688282436464096983864973856566549257831582628718109938098293504502945311824384687037053003313653785695287021578165321525120648960697094820743254249232886697306561319836020740847786036650784683596218427462430363419555446858474453789457195980572873307622677367442547936293653829273495851203027677012435402337461173819576108329468837026543529047634561524492246867495805556858736610578509643615172008350309931867294698938454559509379436096478503939093334003890051697294098322897465842229898449957982792149371821819044606119725536629999180195661447751045366172219513818580407017509892614909835089401049099370596456944751998050545738097164272024279094030879148358533524140833541063295301009164812084179519273761502987263434776023787308103541147185273619414331748274398180080067426165986250288819157732958384027470976016751723742543950387067059802575731102082487963044251391502054273729545563383771151491084399120006933879212472354859999928367673662281236425839254445312086247929185175380337732875706408588174745670943029073136436244338184312528441271159427885093293760727117900318113005378593664982693346590221478964266571489589272400302941135339064767685238217709598048243358556470902520454996615971965082111097963232398312453455747333587420404162679081175565270499666461525505551186438873747117322915559233260517281711855774944760651589036701241385783058038591681547020573464410660197424824392179345169236686567503636572379570169788654188874968068149820674063475311777417878833814050098800748876938221476908934041241429430630871760131208278338992816147392559787705492169032916745901655914563448232930800934768274354070754581858441754256648369327626913577592947121880656269401530134089841232764573566989357830403316292319782754923887664789410869748855867537014078008499265079042367772628826617516745451861072956163137949902893219649075436310418804949611472471469343873655337419705138667168220540883267559561674730266357651097811365233887861505580531482321368457860766830730140975585915714606252130054380128279046217791791457851832648518563390033549981418936167463614549362701265251984310983466929360873598078141956674354131581899607016303469188253169401241531490640353585613330917092405936968436969332115924674810299653808883274858149595676076942385143832833091910271607214995703784688112991095273395991787306178990352664990464154146583761470745507130337333214721896778222371875656873833475675543192120543732231986239146260572903407739615309523859812302763096320552378176661100201347656277236240285043097291579478810988422417020217354667300106203415984977920925591439502978507295277682567982511839862930334789508214585488333877779986598839815667847766965134779338954189258182398155371059369705873401440129719781232130545076241724928991040750280524909577700077025318584773187513246378461243603452879204040415614864890319055854052526097247125859717199623585871266017420360356868139702879740898726926265875474980777724241852964681597573881809960567065881864612563390951895239370612077605815630165404033716770663368184909990274074606334419546899894570164060236826233645929190990397548083499744078154900936645081904527208578168009330560197234626627004976049506198621929934762864857819265708626625303142830128488874116213701330163230080048115350061304393652056965059286235873161842527494331213202698085323516810015551264897533189176186817151080644009086689077346105114123313326571192670823629552269901304009693640150531425829634765772502884387174972203260811498933007298848418454828516549449669314640937407221547692185957177463626145843643029491377298540878711515274384246098283935379556655123651814003647898931163926701292809734196965578310402287400172204872787522552168016694567410823156830771249877374539119203495983422861523837607048014197084729577600283392586751780999676669866369089576643293493381277205443014668664517086418920986162319600882169969238366426052689027003311814779604997090553477051184454632304018226306065213746209819241455134790438725331537847713839815495529802190915258289919433998414758549757862654521096839406979497937868267850864492948840767824469417650341354820795229735561298372858631645058967285176484800418834079845039687278597873535131950534982947598031556849674922508303149726571176393050612675477854438647669354455428607741308244204437349388800750424436492791972257406816108580965084833781602319431398310284712807655777805934980646954529112914617098585156151138008866783407966528124770910648568542853425141065130693198836657090354388401588725997614515400601563836141464192059967629911049933460806852908914089949969658217301290560626740206074814675727164236446899758536375013595752760002115343215032297539656524076607430662008102032979014060029199248213528919760408456889347339539421890500205063169393249144121908080880911155789453285904345205473361329114156872993505517270540468976882156720148454205921017205477697673926196401027467376822377048216826590195680619258131326834953092085718568710311571334416663637904764443851661527574441229045008553256617808760874450084778079340418646577433303323936170644148293244456419008243097778523688035965033251898847370762786135396355263506716079213276299412978837670874127676456368278771615302991628764300319841259164626434827978756964865475419911291703965530386721458221249824355361645851849405553563615003725182725491928786239639676108266170991219064950536929793714296945669734696626813382827115638790822355742284305836108715416071539667303119417233195904646829210297320221435149312393089020089339831409462423380276715722170608303234054084340091580794941579536655385185328503729749353283642573006162915545344888732021955020360596954675141826896622842936653430225528342334978273685222981973630576950730022651415558840970341253331674133537505359130362487377928526106227429639749011743815232274690470680942003999414284096374371721654918382611821930784282404508780564388861828815779311884328674099682630941094455925091224325076489748336368456459602204433203151377776816363593112355114740821990620988816619126787711590488271143909297304649919000079759617167010692830113103283754079210566789721280281907591353041649653301556418716430489862582911948362835798983502320385940186736502802595772083004069783601989693832075147586553914285440559242095628854314837649858425581213409694451285486828887221920804068190834697646048602285910905368120979854790076396196991906753862262737581459854280444624198441954645081563985510012424006211226939222642371033757544048679486704215613256458297222721355524577829560884947979815151541710878453641442264633010628089397190466980013767712809737266308551548601520837753228582977248983524547326131962762529860158650172867276490635693386830123711807663939034720157334315837814333177031907605119249210321809080500244956577681742324219516407130825963398677051421096959486258329198837693440681250558184716531834635323140129065024930612916424486697240689115033313797861256749394092288003200567679813381812725468989130304936731446973884192137200433052064170014668280025877870920005271633015325491019612661314674182094430923604212894537162943401666478835888512769703534097684310543353092053385512564124029982461948699733376961612772861764714998798835907368598798044450338704404399671092377005539414582203991736386070516645769359051596729547061388884026182889329375376916596399375898644908438563116188150844201545844604307143168078962269991110662966206896696233510769919331212524372689325751470892257504112687831125669651375640010585815490749695267353112282451643218443242802747981985867274539932673547899468884320058701389155465414634178051579725629356757046607934306808520173549439630830404472613899285613975912537973799316304132654000758347282900340714116202620713074138107573056879138127240081475086025949040419047418694736800080178834084524738785399785539240771995031394090660951083963192274207741547603614449193050338921838438756323885309910761308460952851987175659829994449879739994805442186354782140785224231027194056741104767247708034125734881193174181836957777135042937565039589211433509806088734649235580414254095305664802208155045828497865198722121947630724148864787826396784870761143789639761286092538612238729646288135582454724197029297815117291335219915876402245317225619294702383336512456583579527475896187227539397021819689392189425682872241137908886920688734673170456913067183521625738981855599859050488953551729190243295309723963061657431187060691867305088997197174047524375189662646387323770392290551361898483160817364451994725801973034101468543042727618234145028551267583935013085411714573146322757463602311964608060926962080565735387074795289989605846599775110730114688708005454095309978274859933566950765332540386195279241061058053583641402407511047012285968535801170804992579360539225002264062407376533632496516271437054568832019390761422599603752139381119929578647767258579969854840197181951628282378123014150500915969844560293304017777108794383276434891798434679380930050851245944946464574690404795175784544565772883670684653445078188440164199412073716100511357292874003854600833225084711668334736963132681196971762434587172877765553481668628887896935092443353844112258926477128193715058617916529462605267953924096574380782264510151358581861043422764307069555567785915281421047882172329794609465606795526716341133701837016616948337172685242902618120008306272670489459751962595095635695726996226562365937832779522209355782451172523637777982046247724173799107880225367563697604289797794497519344374801613553269666436681222425086981013854791749105035280680489671067050129234800739326549751592520013478215642943236726861368656534203493286924329752183061971824471606641488253857479905141949477821617065494315500459542403029884239833903012918810209484664587810974464935756916709560791211166716209829214820408084077779688676269318100397640263761560996096605216797626056063424302214994519680769488563311262043759239220328483508718626467330800173908539884581942980020775106251041691635187673107136320496361211520387493836724196564852326720474533307019026518747739882213208509583418556118335182574640140983181982815590658819761533183343922326992579009472921974085642702212910844868924211981047057525290164477368469959045152428938213632690070484691890426651128213799810193197213119742916412536076715693842239516825060667676160918052249855074141504211521544020092942504916149835938273495635889176800297339728490858181478335399174888508004507307128573664965891225613008585851598199698280305319070892191309914565760714531939714331628598329263990827914547482577023131900308211097557217347436840053103866774288096002717724350426060464032543819654700662446024049972354741139368857103506754843783253233944465014646199274830899490801030305910440805843044712970510820155667340382768682299332689951024185055852402317016034581043236198351725216841803620640758533038794410140843671806902145763541592356407764859639790525046894362573761269271601396742316647171142857380679482481693111826040644924132502512448541615847860791486449836316688226140300651563983011174360906032812125924848547372540575322925560885467896227162715648814651593845623476545953163576655625284470116077665918588540425896596654739801225756925846359932253812104033302752767795024105218572524259586145269245999083369006490939959023925043414385605226811023881977352004381778975853219219612580443844117935470881907252671332164543943452742153829645528023710986119222533103396004902120038166444595007371574949512851560005223005331430291990820453269350458599496817246728102897938848261139067659159111252460889041091378052866177160090115168583061547177115697517705695878211979788524477162452464273920291700151325041782272639620905192161039715306570369195782520584386868293748477210285339866087257496431964279148299271108658391689420944056073068807895099581794513963110863783253244216814045289655997536526019837771879677101122127755764728821266524830142925157655230237272256821616242365012454897829121092223365296271615646707021930064898077697355739746314720475492210430979894555567235505417862720410433936433060351244300177447282560662623256259947358528712887975607726196039115129045832020929701051037114453847359739848204329766237293181840335337411412265271205811190642253897573058508387347161970546528971128756119855137124127014140857928331867208495007809609987551661911807485738724047892410841968863461032191694476769699888555925202640936364399609570875245338563218868069083924848170559590327817209040387277261793773550871309415664844611349654244521931930979312768208495285868400233304309559891948824852940870310010493718910540917270796849945190301413663771266616731095904268676577558875192935677377621398136004707031868867520929880404108896267884284013352741086422955852536128249762328130969602614107609707288639627530602351864659573255160647298115477521300620614539464170990814114712257777297860353848532876243871642850973925403621771704299173033928596313118288050147732399084129406080932498614954711352758602659554304884579593423010056261823657600051209033530267416403976531601804306204888060486536736945932542066817688334603657426121534766412952166503383177544156062517358948808571214482002551554400466361219510648012154355614791560785288130792123142295174106821690550436203485328119987145391306653052121295441462111306291507427384093324854503684445061174811033517400924718642472428908241344017664280718609035043382516223313250052505225256075702480995515570948275814119753442027371651843054836347034272782958731961962866931084537294786271217440759581179931227743198145379648925727102942238255602513756624950117425189416193862256052669669884532412349504171047918517799063737629027717068084227838049335025172047847323588312754297587130820534784381158666822693169670596987367364977117917737081419586361867711215143026682557961872034030841872035851252357558070989275691123473475378780201330509180048738379181873717480025298047643399552006064944820235203973753190712567026150590067784461396813595030871892240312229545363094394758535831748096606467832074985714741653907268519166856078310047784593302464496595887770039114243998040290344904551409905375787499357734150188905212628908080568237292938636279758099187567312064621401092034061134567185485851683840145992534364796068429580445666837853180084037793994603365238911475319492791915389251412623557426480867878595220036827560352645588307730729428544694378689521335626217361416664067768192523715897893097394018181682584445813753022480063870491645600387754234493187039115796924324510139898130994471497762287442299422182974950068863847612403891789536505810085151742818982930828621003476697094083953690922203797392130353597859831219629726611365182106638601887553383342863988476658960576868397900027557003694608615882559835432433196621126025113014707006513201461275006090397921136873591358353576504030808032049647566550528981499100261202667571346863088315353767803724511566528566662221804973398968411132431917679781307624879507281945871157643310310717620624787280355959193055547336264179978739849046625594373459381504719007362452880100965590092644475836249415364419267823754546489614987459660822978249337946074293810434297592834400641452360331521306847334859313232346085946791992811382159705863329501274889494894295647655966670033478278605368357274977482955142783332247653186819414267900678006791713160089421395811951544895667772220010097023166097550749982277001207536363841562550867413798719767740697057305813609731376110027103614600252564452684629307145199345750204569599988482469948409341770260439316303908311815610248405830815087609454960998671305055511657660606332109289621286147002673360136544028726893521937458530071834222763991587396769325383547535959050933011004058110459840990762847250125524473374183380092264095542327074266983169672893001212991271923605536500284280932204479476193715077898637155113350106625736646981604274185655138264029435012338344797055996733122575396737758715965817431761299592324106775032992152035858710949496284426599540203368971601993565003704860906436552692120733233934861902852660710855232955020270597685608906251258235815829965249306566600834956898578989526718356218304669270122945812270221151954331957575230577164073055040781961659500941639172808497048094631331647928238298084694202111632007286157980305736497222793173003415967221601243640136375627478633060905876617885778947914758803003273813165944493479180878040300671762840962228987058396042930462808028595731520499887181999811844614879956499425594263165806378579532152024795247253544364349955881737450409681847453894294749915329935895776612736749789842183687310815944766361591126279428112565535076762966044917972962612451863452357967654819301028586835308289751148525197564935748222594447224380297327202369166398948932726186801452526345893891088293216371529663723941054701483649500034731653453723097423843026125534283828169271793732481616850614114402640391900176971449363769311057218888012096543255356668312645946608980257908524628756012017785242023344709297779340518486140882195867422084539486471709654798012129342449539073828828652663908809245589302517718648170277814612655248059601941907628086986636447958554953127143177477385619793763870359563061381236302041673655707668027036424982077053073186561076744430405819035875505059948772609910797206981853057377662400123768582331596247810907493593763286331208266157488307877677503558744354929678703363377052264333992004130498292501710277447768789663107074338467616679190757033968073212195719805005949204937194354523118070019919540836193905210687628454708454750000632523024270099549678562508256181177395272133425691238181614037128178082230627438790339793089986477364274895572046194301262164014548436119701722690196222139539089625891227407913474316261252965093316995298798615116347863924623256972216566645222019429957555258246838206054427981489587127349985702537768153010275173266669191231354808180424043149450999701968815306679037141595268365910155669276282435457932090546032434247897350838803359869725233121055212300710938657630072989234651964460335372770116053082900467197002941718956906173059582613249361124357787472213861693694697069043197173062621080160651955917923787333052010536130822105452157279438246262221187948932406500024456876071067128070985588534000235572737282306812649492346440176357321509026803907681309803070188325162086860474753567240845187534053241578422033934995907583147603697244118913351203147600640639383372878915059059855689980276913873625165501668897445924125798077301539026902154529423250113592992542272490712216929328754597163433330323199319203687350974347166592447266766977971929277605635604012414812906509187955172247337489725383632693446895798278646802034709081804778329985891238232706614489262295370293026405335574254456590908938614696483628230322515109652814335042272458486194442795355258629255073016949707738502086848593584438830632537679739504882731379808399741160195147375382753046554865307088760598584668275942071036203103389103911598177455336920127891461369696834528337966521253741490028176741113835713476645928184916691335242011454796096140539500074589080924486791233016773566915314104146001301302207253733645869988216054515904034919188873399696356079955449187953958418669500526121997478980152851026573389748288829921566656992357548156201513073546974645667380421229416248102863968229333205923455957802421757142283709783804770785992245217402589138998323327794935207376924687286884290487083150041605246628639561698103733040179657567981051105764623811971611604788822137131937025680782121648133651670590120384843520443226066458746544816346172035001576200440492721404654887167673201337352954160460453568946287157879767364031020900129768077927594965879851279784453460741778655181140193672288076731211445389158307733639936729779478200617894381983357893658153805290996416748556402929952310683956475661475988896617466382880773966993120206071099108641655910079199137501333259707562585641889367771145273723375576477371033335739414591094851917298686930525310658771189549088751276797082912237968744053370966707926385056895672895437634474768898056193401489576834276689753623262750064005954026767595560957483772312810055316865700161381278514834421169964668187386059277387761621598766134199326420341597747691151384412876032114839985892585047522539526152817649888344674701045731785759619916861684561834928425019673190836419426034310492335451074770096822419310367937555982710504163030847446488689412743794747392891454315304657324471276052027984346893327575238002955214137997036408482508170149264844212389135916056426202325468016297939170345408307034489248114530159330410056358958665726823528923182944470579425499492087317467633147750888138114587488658251747254259713964543087560257108521174952925833722938429409756210484102907161405885930250247482814373386778529481375351538735869428484469642946363035314084888639975882442610452879101890174573793952449582989509481277627456573698937882221430737740622600404667625661791743539088802022081915614288431241644292846755723462082576138844422439434900504926816738658287842942540370285868676475115884043916067928138477331562061011204094784798120011374110827473766631861153723144484950125972806316758375584190535190231401876491755791198299504467295559297646551874314335653066904129361848378610264526169687919834189818199545894897680262978695788663557351684639142484318889695594818154015486857982480625414982159407456860499554288477937333557446553080130667082863755550614817807282806179287654087874666384239605562948092094531911766533930578496409792552793719674110590453491842076470872138542715705910522046909942002935123090820569216348547991332486119081407025392519427060488330720058058509240707265681444735037309790841349322920071629141361463990784817831287894563074970312608343247372679478733792924646959555130310198447990955997510386199804152004733047820675868650835582082455832437731181076617104228844421726982087974215774299630078184475645355715614893034679689185449794287005077800502978287269360641294777049147171028106403168442889641213013494818973898438404251138587408445598024089376673223300537640207281112324873541554003688674292531193387062269085685900040764677174422616057748805946982541940485793279151894060283377982650921125128839953432234058483345517874237973716912706905575214324591314587584401486154414675637637376151250015393202412994285386376642654272690692399621233881330065189314985112827224960106576679293106743263849135712862319197426448622272868517993562317853730799121251867025794852954975511961151179213804536016647241971386448335245951747592522249687886603608702669381191211804254897025627279769219312111441985697186693177859506413704641121844134071889300501559426958185117346977282980454934808740965023157834697283121310065431996803038804871013515550046532598530441740179758805262858596178901044477847686543493528740388902516317420218335430698388146110529739166144721415332611486844403345446801996731895222347485149773743048393861718861381568985374453921133597175273121040537439344317154897786795401032393526293776226653455050340172299349570328733081898719959147080210131861947683041162153828901378519300929859389560639436006030603471201346645163958450880187568634878798586125826744579514209125913796964776339393736059297009728507895919889628526365313182267058084289245774217982404248097998411550010039704316147122243036850555471209751870624456733704317575344576106348342953011769028535317772953454261119969840041778332574890917925781011122223025438840374213406816722036001890761848393216986934466222593338050318753801077124539946561530714769217961232269066413932711317139067260847919697129980932890964135061593045562822664477628507633188818523535319698440837763975601244043563421081817399841817963970494289572709546037069430297900641812847233437740830777751214180733916424987486684276247060561151741701006089179194883426992926044920998719628459709472437087549412983937170443831355465185884229214466131247674979593088706992835249647594419493666188251151418080280722677085766406701688511433388559704454287724754534243712812196094571222208350043061940760491565708428065927089641944774626186630813452236911968313325364565776199408311767409150357461552149466030203836263098582576687648058236095591179728623808766488932700109654019666841010737190362656338289012290701045214381531698815170607541973404888248268034275332921319039313841413084774049206299158947227345735132242710441231005321899655721293296782365690446152947379611932315700840292595757817938163793455109628726081634472076175220941767560646604333871756461034632039322379352311526856469224113090288960419674108786571887781636725536657341594331452238594025267413985370412964459265478046650182645410172968942450673727455369861476976144123449545723285962401389963668547978579394486955742138621050664161608072178200164444472052457483309593895591865659485319004258662948548979032132041909729780516306641243199523885574509336179095329922075962154317897365502195915022956025169807874780600409204426973811523856497296354120681898342173730395994183727474797920479762065829541329444644439689992697721354962379285006331959463788316729633680833363929335662286539843441989875475158619437582003834468574091471436059942211608083304725478660181512844257227966707565452406317109509619101753631812537664695467291983112798175016336142266382092194222486127873844082582112203610775705254436118230387197634822757143369194026870570495450537645559183087849970072937354758166163793231634550532874497212381985515327307298558947775654569952485656822578500597747983395221132020865364183202163213965582067829523595430297346605400111643251612615690841461029017986776516640474791930587338523704684030711067697640056249010385740805495389003079737945597310883829439514121776234986481705924287538866177005733325324372901569896069113010980465686197179907025239387866027470702714828092501240023143092025351280508234243819630866069327598329627243307104434762855737924369457077405182308526584852392001335179727795860962034559139074519449798919864103231825172075750139093487284586861786514000839121620522948286227289192837689144019871876251324960065182957927158556849150572932077634474711115209650077978663935231859546924178820892799582390626589400075821890602058439757526845977673483047054144347530628793610782428907127654599049163905588223206334053190766515900635200953543801116375993844710188244013501148561454317711378938403987169923758599468960177217702264076596668846285685349259906149761834755881940172132878075956914542003194504636231729506402277446346125089967027125939923967986701996462609765673490742908280853942660666143327662618008769094763760480427925582193368160544009631266113131037148867508323559277830674761098476720151484270287611499255056036426714465058905460512322441856879957512780112049841112933304237101266966356643094163145001728965512605282614674860700546899179357572807639822218998808477203673322521948137116291215475021147580014579700728678881866430333879841325691028622216881334851293358003250146382541118627928375365239381753197386339993840040637743775472463697889407527500105505753567468183221917942088405547486873586374592941867911268861047346780830175119042738381815972061386671094170485959492446760684904867385756015716787718841800433718324535911514316898374372631934259267425942769824949936132690549249075712229868675667643642644867469783559031481258465778473277500967489054383483411365835333097556957600198274019502951726394496280604032076953273935221948216005997051361696545938101533677790751158740268637709777427731368385173676088100853529531618789103343821925522685965828150183961786942276608253078567459016396336815225775104413249340479208957840061335696060987561918851668704639456391943932153032084481520452415834820143003175229573197549776528656606649763834580201071492463121091451978220938819221047334934519112010348812281941758578736510434567864870357192842128374226249872841601346570503028980186215824421021982401893969533351364672175180432666902542996009462552246383207400285598242338937642006357133767839035340728344023911109129106466756423453614710829312622715848180354805628789724532581949795352092457694343521900816112870263024031306442775400402339179530377518107501841682457408384419103134771366813205865694837089294468366220288184643610278681928675229899506997012754856765460865825148564551622846604238060734976023852701885896018318873035099071253978146267539196193416135175048705434641505075402150409343320318525775346689833980998836456990018756776501971270537118330027960696170013420926508122756741715540296782269755365389969889173245734426185206967903582070036297025752621841317497544563076211700740168895148567913977292225290679935618011187447050562833119867573795716665865442095592672639756132006379994396453316575592854898634210875437880862103172336761709701245923169426933649581643653502418432039381754180289106238437571563569948677735964366014975784563846632751897558837801075409820334968757954632033801789717488975086173064101542388876405217838036185320418879865311817824296863087224295983621160548640312338606501504033199549169459854285002747126131359092230796789298970290007181199325685952767120202556253486194620618806563965618652481212884651987684331624818949200716788222239107159038329880195091581222478490816577086740400097434516874144248888508241596238696557795910207377479254698603393331873245930030870487579002842868753142023254976391749143407920933811730720529792420083682060498351439290857982620219807113706125445433664289701740321507426151974973659327451211595566799554940737254739737784102010727812253599699508996559997085083811766103926861554515807066709344177314467085866887591676133856745501000203512312586224314580402149175304565206758288959008678918895769416638149238399014604087462314047399745358194401688320999417852510815069476662380692821119614663440226144661627553767231428842721518151226007639759504276679230062727206060702044547802074705775843688286554839469074228250342835873645925294092480431470859851682943144030821387793428326894338576336983278778426675539949467424017807399314958520822790185902577360461273081319156747112046587321296457320284018089333248067115474973140018866017724717836620843674462972568818658466947594179958309370550943180767240275502829213639686398765774890753053536792595974637558930684542173178281287573047959207823342037032639523842266568509257967173017916347427210290841324015067376301324582976440332470829527956482680224568946626185894441735440789605994872789309031195402303685264485951074195328015736492166675017418813689647755112507521750307209751247876131232911398724184463045110682918187182284505611124083245548680259238965406237770407660560884918461034747956707057922050672193164711469921583376468586721260388642805706196979719452857004416090065168304808900622151522028769014836706609036257085101669041674867410090859685295614076145594913040401936805800772044684213655082320901245743497259612038370767859240074931505793943968177838082511531726224844968602910795698002591566620897927737256988221755439731100412363886971853914514485179385529500788263933201238896897868720161189208171693872605493106500628428762673604036143248920462977183934695133459410593599707033718214134412354759672506862047819704739005383898088971786713996043862474628352975604888066705763667160840991106173163969048941808434619801844695586693337955049165530523053481325631988836257492430409427209422118664904294070490184820798344351158050712736266094923196327243054928219937529980385181933298275286675814478118002425396122972275414755068891852936140865566692133244528057271783066670660620170876653053869518697004337931672724402749092621230045098982859944518185082251517704452546853777966642179576030185624616648328562803728058500444549790361724462932703270863809984549900188676125650020541166290336552340388413821527331994435857976395573516122423287800689229495639018717066560173842428618363881168844696112754388655755924908493347386530867543523430074602689951564410045420356876048612485879091885139841667768121711468843403481798520518319467481256082862881636127697314911370458854373864075642766903808590042231246961364918294455538633135383145509583279576115183709811409530652012019917474968754319278986033112321636564869498966501586341841201157773376451466364843597300996363644565947465836930928959704025915462654298879768226316912012934890331496586284216822903826149976143037608517101042239441222636903817326767864632335912620937502880954106906490510032173433459086172078477385855483930257868348470311572474478565227488069219504058188465096514562817180072371399832951024148727338361388922060715938478952527638240350152524465048840333787771695687250315519334901817152988350036771743660258672743005030966068292219959071549117516697150236413457265447431793303688987571731824927601606647719904111390756788878629483102993871615346219031180143468237518965676943941562815503055776612080489667374533599062216966768697085135718099671193453452956694874849377149657283824793073068751478244855080402294771478743262895204483896695428139884945119353170591013731932401626898511802500202124320265905361869884625920457744087043421295583318829736548333362285283372874589548487342516362567980422552362385834994983750443058086466714668730402112381232318031860664357467832157407699769632456494056695066727445373644936303975472568485774452826494720900788600729678625693957572227464107937922330850657919024797204467761634987083219444206441991944917917197935475390823530713937076452427285274659389629141821778667884327185378055326338349932465382188694993301820178314104787746586063454290423342876113737864095543536906684514226142701719104358160015047028861084550978219144011195947135548432932146534070614944321016102065421858846369222674337526445204562005542063567336343684703363180047956654549657353219711574018446948261949944773014236587675358533479570035626205764978502212370080192912738319575404735183380640615771960332301681301714633573421938539979579498812979484992124578430951780547731067771324928669622828877641543548824160622009434425763548468265093605036283812874538787100020737918213886648728857213529855158604014804214628448333912423852079067221563010230346725568358429467707966872954559757817555657499168505531980517134933248690722299691085672475284755369871102115204967970279988927700071877535251491560028125693276161786678183805048082065509509633665000735814864324753204808191376261675256623007768694098003130251252314721382950522347563983481146556461098191935900313889494208683099465828108939679294499370695918753451137044854898038558205642397816034093072939900386473010706134315024057961237466622987481421287718430658486043445496469374887545875042623272937836299345629037884051579903720762438455928728703985721674262522867238760095429486873282870833480210233640938773647470350521536532735591252574765915142395644686230847617688101933909013164791657397276111095494452067662131620023346359665868499338993421073424792526864329934558109298867152354878687405798769915987263873646373769120063641980833781217697217183729131659038646260424557530277801556194697220888670230907551689613957149893134445630029462937929453861660355423183808528367235144582547548454860050138550211706821237510273112419580542340588903625300259425900994157106974017275453798607452167106501296081062599918176799321440976820784631071451285887370338679127578629411630269408790554367812650212052765232631249743346870763989323516232362886386168189108440904579878086496638788262163031439511654091556354275355546845986781611194660559867889355107186107856723600287522908044423886484028162532324237850399618600914348959126717804738275278977460702754872485685723617316558671378283012189136351895272125988533364903893040092341533811561600248832215682500562550171385250463626498522160053219916844999317619602261003621266233164143593011443021045005184853826018466163484774135359526851181816503105696150668447358158731355639839541843098781547639853063842643381223571640432732795206530291223854672843793399971408085409104643237044688272577462369347285543403140832173272870539889596121862395559052080436781365705760319996571296787580617473852421041478449672773172172063656095886070553766679507834371552657090408807192349392639103369500363853635998194763246035374074754827574774394415297548072184324633659139534366089790911567133820377383785943553587806239670072949890421123427878952516551221124630383495666491857692242736650166683698309733685555403309498258206447513071502412935944382714938510351006025629500343369310555539123099139680701044459984739635439000257716875211497966333614558422614784256195865282494594204562300491456110925239833644014639926458169775140876066250874944387491751274126407922220021721934296367368485596064039494006120937317781026444151076226277761552097571500390424604839379762869905705833671229730979302985743432235268420965278061815446852709136226672852495449256989155972552007431838716242365146941089823409838321572666751435579379429154266566884941565179205302914961338602116859366938149573758569287729708972552065515763010295930270889340191735160533690960091098673799122237330554062569695971510644124035393878435285039921302221412213107516496820090680043733558376850919798862709187519800140198225222154065434311239970922193949427225027688158009689778035928596896836709845150751945409891729833101412555384290025623603975786898104011179579207287096664815067725210579458413553387815639237844113781497993287353722430277882099954019894260245615839211383727707130930769523790250214500885934707216139980472265395468359756924518933990092263756475892458525413221262413394672391516639032667399742479582022840209987798246681017577568509879283821091489809403056331485103143118610907390058635870089563111560950045373779056835094862286170145777358338576590776817955560892389148193251610505869364165787214443450818895372684291738944331986365528803157749923838638612506268599650217048205047970431749824365225923379170429330392958238729878483129253596602155843383858588841428518091359668082785385470784828960297940044940224776368853503236628037367255646099877355500025414205195742152098598359852312958830036406440261834739722202582309915936004735267434074270409381917359473433918478250353113223512414959029373892386589082047849064005813627181448310548168913620587153063340303945961720593179066869655211424248998974569297811332817872913670468798082863308804828945457865399895715681578982787698290877415664748185692124790660526718401251083809061292098101461659023480310375201563700964817130945840174922938200911002202455447879241304857649051000027111418824361361188902379968244647484844092956591368370237723972912720666917901978441929955590754645200920608623258911985755094540576896967007922556461061773223664520211064057939824059200069289773119779908240667328790359619871256611281811066884712244395017819829805926407427843401818173748101916074691895119049458886921745986419754082833125755039289625730729618453378508693366965656439000460961965890389402692209186047719725753886444694085702845404387154237617621496984495533751162774501724982422417436939379048716420525466616866793647174033275503510433966316083087868309961287770186909305032693501443602700185354765635578072987773515351973085470131168651926125428369531916605814746776221405946818966878686572990667823611408335781766359660952354413131982330317607091389758378244901902299606098865030528519119877883203061021559772986242865466090128195372039854339183124934467420373994073502646288706825298983837508306179005957113303546374311916627386623342526283108300330327989474368546670843080440406787289023416990157620392235910221978174411780910337997419251815200981635769713790094829933770619960182136673477952957533801711948283062062463796870142927953577164350877438216136433711942918805865439083314300314209505384512628151959422626831408154386311341679434172218041012712257595181709750195686406000902888694657859637867531774822948501177760741166707376747304822562700878438129536547245762741668719947537990578092671943450064814263535606630043757965172209456106370169941472367367149645041127626324273584837987251644676354505950036384142110151554446734046744951212368654849321186270982897651552536176308622799863274595468448031965841037930387462049496112487873453782645670453058196062783949836107125680883815589094426013187668280085178055914757983212923130537321879932336229164779012888889726116821225503732594042014713550729436159104947236753211902909065467256654510303112248877121162383494318900754093814609301494688469114090341768400298784208561896784747878645606651128226058678051295518980102800924422409537196543829131372766541926731287775888577564585636497297979463286026036305374320552348816853467887105811129647254392176829237379797969533850062951679638820620499265489009309849284235496358074832605288672271786873839549491600839351224134396848034609943037016227769653732722660266261122482995572362702191283685559890542260148265622843227942928568700822340946407441122972923437599698919294791329606249530212400835734033017146921424268712533452003506457127792167083127891656668968541537871644836057563925948459207217057227766464515808579818173764119716128638888382317848015465385159761449479295288145180316522535836307290018889078553375031262561745953438164755472716138799385245584049752400834444372039696163461736674258791664938860244890406508540970425208379230273879287737194619723957261718747662963729755770792481634069929363412977529883973673768600623969442124710131823215366641889573599819819366320524895106452610257979519799484373603851385591709320350358204630936661095916676723468308218828284322621058012360136999568937814919977174181634286859140196287939059829013165820242218073691192797934903464088776485654072556909079226396601438364207085401961877063547258864814574036326775329721592802853514363038237414863665013134376090341243045576350745710507299708320649733000941241118394906474444873253243723826590805863094729510196924705887657687223945998845566012283999393478629683681202610713927400957425262840473684150149999362898833604223032520193811970514912191738733606959689103395377959926164013219110798168858313926859244148127771186510172551365926329476152028742905084828144863568980701794800653618589665362558616283694078329686276602048776532262764656580615265157763377332064983374795527424730275276790581092811218245977804806766017505678980312202207666169251276710581173315081546184860102912310740976410216191238370835185953321539975912906623631747144914180098881402854532953842082971511607480049448567230168883878466111080700900612981293782355450946413714736198127205020865471974833816802924245629640188914218395946803170441394209531836555144627119996513372610092870579879895360528107144828431335938713803230173294673606364073798073376139620248954178789249865989435539931000267387284145915728083943273639749079493792307671610356513036741307103376328178971270436673478008531345631706981091279633169061217082899053161574044420320185395110379276614467618654482833005072120000171893544256030105036934348552277914617282645692531609145234305753419968139498586913474044659863147099134920221760964234498355643343252493109316784862467165254203690208578823925050327209767595549665574821413287283724333820772528954414530283509097237998012139361840479455145533292604704536252741668583095943886830684758999587465157507250761148259046805708766456879190118080904563536235967250365469207719336140595686064670962116039115418347430883281607506986833042611945126582214604106533604683937579795420906638075559073471205176377366287448366797779632412306889263019014947835480219903977345495124194896478095863919630342734190711707085333889235732442854548079260976222001135932814873656003265653600896917887391319940107238813382302808985890177635407533556384984427230703559671248745972211464091269883719035308901052854239532514655073481193887735079982215608046186582699794572434414679790435378449762824777406375974218530809518461639204899509410342052453887713110876525919177556277864457911065871733649059722498444402942096189004005979168724095803692327335923736555877258037310649697824056702194539095929197070013359191736578153976771137088091075997667559195828967543663476494943794883177130708954507083764580536743481185200178730517839284101262450229454904450372353280839484342985649714164961478264087522137763440991038537733663397355585426766441853931624258184283083020262164481203284351630049095459336806073144643190380155051710650500852226892359235759465145874833852021217015052333877509243454705392935456210316685560513846430889618037444432336798835803828019927611130827099521592836662463021750728832264972477905086778065814262996196494599669542551185038163473365219925031220881922481130903752689017278828394834200110250006893897336093010339098151301412442893581525233241891961587644960242307579990361288405661802919842217120693727478529200844880235715635621061415914924810265797765065498061651192771010207459636700641636996750451103860982589086693958478745466569593574478460547545673903394587804989624502765310017092891770288126166638660701083154732530114391245232859972148146679938502911619576727116179795113108604164541998902422841355308003184609486571767325381307866886629673464802385837577585504793926310087656265550130666868187348561831522727545666470749358851354623479094420771633303632582471610823290506254183547412970326182427955811977287348249016262902947262331158981971943697091089801852359073342918422674048173247719749905990289379597265643633944379099720861383286352606548463517140331039040781375812708826526757862026432911333154188751328163877616107132728879758870216259420345891596291643304124225400047780897571748916085809440477498046826434187751103619281070343600393335832749982408392570745662411445724122989571338508804347542669612912529893888227669218959103751942372583212045259744419268985048452546427918046472027086460403357223968010086271157027560126337550582598835221064425302353443455484253157209569540269439642149418350153820039090320073999046461868885584151788878918948090683418334163719904770201352921044494148087506047007300771562945402372283208856635414704021355650876330199935839253863777551036617385050080287260537265470298698496846783222821107007457887347071761661101080118476446458206552085582944565440849759581278221636743877608323172074921601028317821823450069431841305441036512646223085305480944710809710849133300762655265583539020797263925734802844200253989295330426650749088367908702266670868344483444685423069058685594852645707212282308705152009648734618450753165515016133286263674680637777831265329282119682457287692606680785451268554318105343224980957246967915853035702856807930091255436832009776019558144612350151925009954480395074045157761344124717837223114406910295275518959233146590961150850041989739439501117998224271262743039675370358740483775831919066424668611949462982756923747129090654126683210812618895697343420810138184100142795285945902898991751488664443037920118042466603375644452002372736900711251555261383657316903723070176742206818141602937052489818655079288231105600544198930887756430959058330048395818099668562225136684572949043172981434721907942675268915475047541539255669195357916551420466643390538204642694149236668845741822200663014216540092512329512383203231754820010923013982147733687524149084665018979830027325769399877052168842334315605684920272762405144418946239227822451040893137138336819154887236838019346270367268539657280979348059121094869551985533016360484772642816809188331981938731564932482941352952906759462070810615802265737129240545676469533920185712936319027863663446637877331330507631440396776932505217522969875005010142462694511479877121247601435743981944873214184598861483759058671468217207351768754072591907101674067775817873294799691059409629066408031071141181440013604122244544158514118586428255195798307409146545502219593487353491224137213426617119534175083851562382188801495449320617336854005583720399060256605471179574234053810836444291438955750453760501711188892632897526632538463095445033543243019097883166157894351869010728215650826207127261392041525587128535575496350279368246830001221239543195778003023432258076667185983304263683257567554817567709247667302079688200014919290979801852361037815917060885577336000657858733414442928072995345298057476095023949358122651631804470971907193806055959475122921958510347030151848261463470431615270874571309036721027179778570118838470317428225582743385049514322624773945469490866106110603451807348422672627464676189232802210414379940351654408812465730727851424862927573626447971135791470429795607912455399770621641944199555135928417256894175654522843185498446759241886207172164302750310312515813541420115036615118956558515865488928463939090280149730951222473003317990503592111552563884963349258629234795898372316225418466846130032603590797822760315161158658156106024237660046654755301112309187336996631408678836656756629674415445242258924522158710452944213805933613518761377003932165576306665037530282423115815749294374516716512371788210429591354844055802596671224679684938654815605069579775633621543716009812402402360475098946209578462942118572016550112905649829827472201529750870046551435599579234473931413303913188183221036017231152926156742729810259919845008885346164116579311248998878259145977818501729154073270637934726413428076962567426951383825932163301279734201365090502952231122463792925331438387707719810555465753338705629257581288132673679878040495910659849002687572584900795803693277270795578610523469359205417834287096080329067944809200148125457938444361595420437719517809448404390392904876904695739218877253780429366050819122920183932824446107927569405743072361139799243337901812282581390651300088374367416992970603756566694595815933392687487454103398475709791973212524762946207139908968433308094661030229142764652964402443089531577656679327239092592422920615478560663389667370798948629279429668243940183734674606407160295625022502651572824034715438831986317842450841954711696766405008698568286573351732408555987559629116144360246714360309807158939462619318488136480196542698060750948417191262091703321841834707948280413415109305922915376354366783244386552823703454466821120127320736500759138368360107023927846160031352110099826510125396312938875300159817268054719039214368138516086231007811795794444141935232237509790763412237747327101399315779665558527400568540909478490355266703304224918714968841066511420865923306140326542214886765564958900524587092144472951315051554016205416664399116637253399331723587811612927055575313832726869490521402261653357705938792935374697600591044781248880883092267599600525208756620366506974045124708411727090837742806919615976009869426554342888166996240304114830520017336652075582707051587995964187122584440756713746919207120187143330564796211222169948372159947870677097610776244876228840791287427414893508242433259692064653024037520082259060740160282407714832587694409652746349499199945639890104197257188745986428109299525535234387742959416951232073279066670709114819830664822928537040680680737333231864595874457569958079612210645079927613751946175751282533839772476975271509175030563303650952190830787725434017474043220786396412414878284928474429823465055968407425665424697919583203238568128022805618163965845504462180959065867586718378818832312939384859605626681535214846217300499825484881855330408035157795905663168162549665193687477186617723669897824236409506561330622012496279980295825835259881512641092164603171486680230555161851469672094532454532015276010011053196573360593620224135974488804065976972478680129114439367814462844900455107304612492236414792072651633719516106381627547868047641712913427306285036017909781260367693742197017512172555012985780386300533406999788911495391519342759836641645525108580111466901417429152120842267686343761402710008231584508989622159812860702753538601317562104470833944923986014605068838391928567928329437769295030325509199160833177053442892375892960368842602612592649147293680187090214533799750488192768963509846361114808868518906106736685567872340428202295706135699394398731380601323115837497340379610961034878623714645383368636957770449461663370487982146276796341433464474727358312672702346887914182181680760834527979173201338910673327338151092104393166623325530760408473599657082073092986972130331262497366164416626183755115883392597336727996327477385391611910312276972836348422314519400820483328563495124948467073727027248852971037595966547015028777289395257950525785568939573895983954904924234918270613345643512877264097681682570918877807813801374508045469534331848179469859375710352611431316324362348917371728939811764875514636092887905779729556801088476379062229356341729701701056729855736250588807052821405664179398869672760319312328265537416729944506895583969907816963401650449030009217042472479269202650919953629397615000478191437290390049461442409912624256840098636109656391008623278679102895886487042848370282381348951572901596564954809248491851659910220841726385239766290153663345555398766331182345307376659268400899399900037180987915687062818025198165643555000213009264817729400927128079915407294639993322093103495472217695413604040475209424101146285576287078777930366386584021458973592402636132873741769754268425723422366432707087520725734431239509134815285269729804306864531538763380575749948943644904878136579580097457694279001074333304240612657184147373423246515919495329491707568750513486043482092903339953294508628615004468039986567257835513731289758261089325999814923901925431893322846098705908153491770148686824589705652118939819295417601168428913859249190802025724393063214234298791528784604761060131412741290773053161069592767583964308132903918458102171613859605808796500289426628047928508430579400270201604957711345974379446311009581730184969938150857260102836220164159393254150695808724544643588393154331982684836570180328809218306075416138935151633278569565458450474145702195082403284314830658674578468714240978096804502030669278166433924908471516048120814931196516461472749546467439089941350436971556858631810001719734412066540544934918186726547509907751375277937323455606042314035846640962467985032758217325847890798876052808059629655850072635031612657765958483561927451037765672443870016506369862826921259042469179880628450961093793039713893144762601887113623495997934498158211828440961166373548044779163093898208714997411840193629230202346929288574356158665602989980742270626783596033359520800070191421243113023729600568741688105136138179827404371515175668623352974619260568683877193591140667385765202413674139321148090107816115323740131238581188171647680674283812581952228926541554582128539529829087276000709881086128081338767294625206072598616524693658594721313666000411356079257626837201485443895686527701187872260327950947612728527484821171828569511919228748676222871173045240104726138643639474725853234765615450565049483412322410069377566231269766908221821807433137201898205283921313740258085275410014852001534902393973719925648879031914329662325158085485259556848104257643837414848063612874628843889465781615537883891493395414037511228372480349036014416358877938446959273531419501948382110766852807475800102062899719755817683742333029347381662590947558199681415281984337638830715563115052335048562659461575084211737925442696021683298578508894756158390499314867791635274915322817498648307264444841277093387879074898063033147516777413204864819226419052645895903399986941766680092738734491526040523380762179702830730212930189573051582291000840686046087771554071135495724937119443781418233851900551306513843204374498601691994467154933731724967360596784525495993763116237451167016831578034887601864668057818080116962658772000440254685029381286794934835521003316998861951493963238120358880470862999866201326160758606898151829447639882773585285053438300683643640366854412669047246519448644076740188579205458866235882343998756621820374037318426608866237868339590946221833883464230828562432988335406954725380954381271936552117579835225637304741805547195760760007301388606569643546976165620687265621306085122398659150007343988307397182601306110369225675354961767780636588459502590068759050302869728112030939225190392050936156162316760849342541469086029813114476516880154749944863009089699245224903558021366105074724618974847432844978769655926885204088992304034692219384656133487101188027716009694610035895413874255878854469724730146767417493972086594167026302424308151575381338514085044282750308062183185433549972587485243769442219308824569382129832316615742511138598934834913934674938012191074170168948683792706216087972964628939505439266025159505734706223268836495998625515965022490066996771107964452081281435539640395759592690411540460393714738769561156929821018933647115774360714329009629542819854009402807012215424273396038915681463243329210577658218683294981297093869578576534012176252795698987880804305168533446983910353214485403090137273464602866720556146175889140692571447744764954786513648608333708494619598397010948666964180216007580217032836684584721653905840487326459150606298284471018905612172823744257036193340129857030739243658965118455069183479997713884659259694279018099159456032454650304933870149643707389216575878931637414511410623816382875576819969213543057955946731912396525099362971607692219075950123202419512773778358020850854877347614516529376781736360898216957593240877292305986372052593947918813796777855261455401716857594135990840942097394838042520673471827462503751000468167023634369180519301426993041925438101761855069593634259928923410168029779679908469675151395921881754418944812414138035767097804288723570017145694702942717770744409980647252475026618591543958394160227754662326036975650939066626329331062037686337262155687142210977727131095218052144637536537783046424714558733186792433445430583110737915886802136228867606136666017123659721353649520370421509855368819066423745576083891895606089800857764023106256672383717455911120147669003157118694438009831241723848563919287241941724824554834496404940227343702410824955688404644302327076305288503132245564485727259540341744668225776538176787598372848601929961494735448669465289433378140542207912855704245936862264829997706797203456989447601846507406852461357722616893221078373532905425338548570253726693809971293103503749916577812309297345796613369520768938532832807179273776598044374807515737635357829288276145092818049656913992276347811330487021622035217547644755426324058559685452608006249386630206273212509573066191383508543148382801098541638141048193208029132405071225890037658013651673792240489104620928119089405732265987143390556415503474035995396019959087764240889822997078489944916511942952132849057382746036355877576402400226737032897198951006060037759417444856345749725726139183431810466739829621816722119555848781709346945590784148513626881823288105264432271066842416041182305013885295090149446759597151367266447332198815371305185286744204644621682406826055674524437284193178021085459276244077276961664461554135487710491364943498017471833855962766779183739044680305005646508942856248742051685391372004242135037094246896203995836342453320845388865315537911021120000216910789441782642414893732889410824660948762764978707140879465008530674918683620567139662052739677792241320608616988917238777136073089517544376331762977112100916864123981181098094511294778088179441827906684863900736919626800521481453328789106532541583411457240885704752478901524816269730516809209030837771670054593022301587670414129055237513929657941135280926016481815419324089660246914622150894615704548017355747441177591480906485382393722741385328579902593397366045095361388943353593621221643973173340402791038875124723916686678780081585214608881794643166481957060281758314352833876741904072015881928461077630755856967549302347281876359005373941634732633606510026085376284131884832519247313102884107943954909469167263800415194399458345525280630691648417057694302123970934823967549717040057272631344653301000599050415995874175428438174748149425448668534484625605673055042446856462906681327145537972510843678186998808639259759379292230963441631101829374366196149942622934515030333888417870869555842266136903038406769622689284988464326062176255426208482045282551391430629250037848870602964042975384695420575600691552253474939993343091322199561926319188814956995429760825792998060807161138460041862133558640588296999380761346949386091696705482345415262402282808574249572516720163526758788692164915539614252089476974526310098861434837157208805879299645996515646280958238796165019354740588315824145415105709578926152527157104451249333563793797326924747086292502680455597502116543405320062965717320797918712703898810029871883060125177581436702358307635363834324002108571245461393639508690182603154271108273993933869732264504645840793027729111455940436108137669252077624102594700935235673001732520239342405113213391884590787802306605910122565055085591647862451636082377259837819444573134705920693823223517722126664356480343017244931554341663185321580472788860476301443179678159152688788536089517843790903764537944703858034169597979578068037833314481717980147183861746410815280565493930263638368879513448537731740614425991563560580713924340814099618873615920177095110239884369158520150171807978934001294452101107569346242629516698890767718788557155564273853903313048840633510078756581241634140304706842517972226306846547047181825021033078204038915745667400329745719087075064201140340723251094585058826587166748424383621493340979399976006633886588724109809132779269154569241623324542720669939973084525774250941334357824463829930657536691058098908721103111782810499925073107259911078352209487692142202701989729624312007813223682285806042108316330872098809426974257593387233268334379812362776271799913844605536762589285275600800732981583008994700354551082653512147604638141621377769386746775505938985579975343823856849420054133382817114529935562885763639170830468900178329065021965536298626625082196771685313967813098662450746112212031520930431565175698073880529816391103478806223852400375392419757202411259863365295079881202716729479813620802630092827984036593692834769650072546410270863744226496765833366154408687810725945217812652679586478036114193135272477529536153704593446070973128879050197598423101768047287401276749649039568935057572327265673893224323603324167057228538940794241841875290562531666669216037928329874296213460585805262549394106622117663897430175845850948166955678622209992774045492648928137306730482842895560943992008413498131224643005426883127913093710531492880943884827114365347623695223850183584534212350314165660290968778814642219989832553979792270046622471096675610486383143631634289871002969731634796710163818787337085033799750770175663400175961008509915766736169012401780619996657381707767543321696292248971687209672041708604710784934794530123506198549738520390807865039434031782492991327620664914542355039645690206061143339788661516295374936899807779426770022916969766128204283137264157882896349417743725323369373195789069784809601154948913112116769294414814630218135659384794690109840123135610019760377715302245432293237341344428734576681017102847893726853529781344771323851435637560744386887383683924637723037228067611683771367941936353146165009291619058490931070222292200365760638238309000846123933760450633972272223279226538964608496334858115657690685183443873371091925378546768292113587313129205634400273537115785699375496550546214558683965340399212893675954143712488285031987816299601704818443094475861929775720285363351596061285339418786154791131967864494600747976295770092271013768262691357437401981319026027281960780261643023520875292004396988973808512681983559600182956202625363099119788262451368278718055739195425384803682611205855248882805939819360627279339888180590905998504734336611860907361782349286210812314081863391497959770238361302582183348149325396968321078610616294429764694548043923782746580026004412582413873852828016765209713374306758266768340386357066870616436072754886523557368227317098057435386451123880285458178344501943180434176149859702506394375779129422368641789365418714921454802350125704954246463744810330556269012102171630087854003668440458735409734008324430340948157662771703550734027700599058184220015707395436979277073692945557514800716745281233028566669410178189481018985936204977195013527035060802396799436152030853694639399638472962286626153043773083423620950426779406651740770085530864034570337178635102439364162950447372380780634919988650808121599227827725645640560636030060825638533292987540442844550467093388371904517446214771921093842384421051026391998858858614700161595281849930799637621852850790709786194155210017813977782145138613043400307725334424669203268939816084225201128325573297340988037278439174096533368084178490288746658937722572425727715849430006138601193655714816638144312334948274139409107406153762338231736967707567702661733306908422968976258070550577244637917547399899308988632328053318204364445099299312662901881694718728733310987914419500193093603094615816110686123253596670382160113678580104154538425235719856537920090453535536557604368292714750431768819885825085544673073077475713200816621241253400992495588227931422565955085584097292702377716202207298531564350626461813699349450459257461532760583354456303710451074654805599623063431489654897989260373139768404169083186797666181661021969528403275229141331112904798502703785014060255480741427781083522259133600573592391663405709897964597289010858695561322070322835009417264870686770741469080931456915681828808959960215996768117179905848411301778644147387723465321711849990476055624445495026290547658105083856282325763932996409580430463124135320641649514884881561875281370164324237680013123206296680207107448615038373014086062645724771294107670592128307510113506439964275991812576610277357818133277889804794850160775051201696724999371771723516586862426027449786262479303816052872524929417664463392725090853249600880813903812753101962278052156892047317733109824146912305556394442828816053441781184968503863708234538201903444264218558981010286773920140567654954050872303963638494144515201507121215856124432996727167436306444452824080995527068332745211517333150513924936918600802516004110055903859220948852683560807813876365807166667420654211859688613528469857366378882013865568180192965910129121919841478000724763991886972114394166138378803096604691791822619832989119397858990798151834818988001360956373572906297833766795458941185503064619251204101895459573500241337009390947851994440313261452086856048440234190313444310153421606825524244262998060663598904599073465763091441182505291476134361215587920503605060599409122551780126218391438272975334228203174388021477041497760640860770417813274950903924130732607187937346630243146763787746051316674908379670233402232622794980648161621021600625603319032056839949187826113606971405905593915570478266047828621326692575381251295842514027079334187932854389404029608085543222198858816991843045749016488706385047886880687742492881104785260805226601983889191682152843140733942507789260613431336976287479234413655446355910605022887433703779640975028679028371218691070666014591384539810768292803658136644566659002840306017374209291660407363146526168888046809247018922559155574782709757829518036812649600891453317272104776514404065251770024430079042002427192060306079522944180159917166872643046445717308310376402649532905048948500284106176682744653982862678053930523631176300724067088424046461685506874362691121872481592802833736900387718820812322586764304031645094211765778002176769363203160225855694736088057504043256837850980418794589573070472120134604956293107623182441307092354014620340578052796913046103190109871395183777349495614340300878662906027489226669585364604345972670224724783144814039112091352958662007259797379834258981707997896018416700537075366241302898339369058476110358375829134906908445381120744134141857727915170186841965913640664104029576038427932838580095207295470748229344487627385144446992919395393405792191667792037800358072780471442886353289571288697793500128438977062648860460824068771373802949899358624149939697381232385536316142215578013755224474923129761594755620472293816544438930676868342920163479926711364512660272763155675616283905107874208234850686652109844528045813782539714122874451518366750426419824838856066059105684097177978933891778280130244840097661661698154619613820801807318905154230156810154690370215605640514821985353528470272085047355124401321683286343517607284786142505993158565545017692732204344333017876634941063945102498094700141560907644115768395950476822856971258220434438377850479105567320279593773810225799150395220999649398950701963182758698691488654140562666525992781765334756874405536168251126614121583601951201601026986185207759470496435048734996316741877062991943395550671849681913642218151809385288252171711716112443072071364834945510666314485170259158428551449263431821308569867975492720753391899990730195333673938493829436664279669507042506190899096972002041481409937786432075373931304262853925617510228760117271043585890194795558650592452229771682406816656279565232956009359155138336917105393319013629280799498488012976770105283965579563631910241277716474921161317233929066881357221005727692280072950106232476395928438912724426874366364293599876631044962110209032148863901069903268635061021008579088535476190301348548835033753247394651159401479238323880141944390581345670414697648433228274113813245490622871026429148114574026701672401342723839513106713789131962106203568232515043255454503726165100183885849103552474950892459593144878430840031614290848382806474363544012704671644086562133331475261612340544218655605854304671149006247557661116856890122332544587370018196317417558996670405368168459853711719018753500840599833903020465748071202362846088074875545289429151447956955276840714873878656257850699755794797931993037733210994934800921557282445428530626718914084585731086570722992284722471297371796822745123623376706918140509478347295867461071302936717336918931189910367072562646644686252127491738227938817552115126885908424920527929595067808680935485338924311096409553704122097017324077360498488991974642757685799562695147552944606009657424405350000168607564947592373450096101122632953652121946381418058170191088324383655487301165912267459788945325409387715456350993978056588956273220788878305776271142560161602232158470731399818347528989760115397327804758754649008834974671408817202393150265754932087394784042044430510264309467004380321090096756429880726271743761121965477886135410484076227397551802825464877512710701425296449244910007416720501613944602227057609867229437333921857827190343856803295873315890063124576869183061834850218428376865027289874606835259424588520004570912447071997510195022596721341492996260011796387438228773266398991107438037198311615525634839962869520055467775892175289559984535285673866727910628856619132669320774297511705988770580974872776163960703631622613377368507798416472242636198414803987969166315600532832138196229374847380172111527328547133331927693139386000592346656002995033619191969529766530008434775456996372599482498807389197660670343677635317474050798612303410978772652216804419254135802135807783364356445749169343278561788784513453438108527417304619733176721095857128762713400400254808959729450666048460114183102621761481780007027463690130803744078738371328340574186000129923874408985370960426942280728682753547372373506319140405395151888723230928061189398097834762753342933800806396604699244790933625969258514886826370711473589346944905408568851326249107649387378265847598155735367517928667134607124582527165567397262728880687772332066216248333835147452671421381906813833134549575475734359590151672887441047232681803384009832055689212395313127887254401609676614770876138593599767141589399082150672769059510392999089020245687628933570404706401560660312447176617798540355836257876166303165996530496748232617039545922288261849619466449502585166854000595257384348703269985117615668336999860726612750621234182599274897307505873025617655271473106643951546438933784950880987205146569386899675293427765817479369309285864836148761669744098124274626792571261871934676210945220475466570677203373461355865223521929135057480877751434687181312326759708659616969719354667153379688849755177118984606067967249912678392028331717125946952962915197274156931061709672676288376548442505554550484056433443945857433134595903266504271634684718019618323287311055778980007955990723563706740656917075543945397527741747455214056344743485146417148399421235866386721111658937680837761858016446233083403794980100243976774147733678170351351651421693687332247245607507015935864523016595830277409332457288308536663768839468767491549386537487088180402342454357658866723592893515681038521634008979377196473940298064717711419676551539769356273087438461099258840550184610963402115244604612705712231186040160831786617491572619091992705532374866453608385176049307316090043036803983353594012619113674726759629522451761055641444143141426338012641914317529406105816993801981038636281348552808479905830121985445126860587016463365709205039136162478818514311252862853467030371625572105792350927101963824007938009850809178052630952576833555904907041527318275877165402573801760686705952701253037914569768165100519688493475938220172103975454108184843824851071799209255586386901776707041441303339934476201363535822155938838803392122297082004325187368422445872971389644398876963807448129803997822343277316227925348772253107769819149370192098407868587811298837461814218486310421461991684927950262600321692709043901792980403359540479363979494578380857567261349854097161161338908907071956666844995625721934366904833637595835124506157659773999221275097503733572472461950872214354283693000769648137740100634880263739677687593211072821435731741114539599171992599812480730081860104508738803032278542132630736483745952807025976172187720047277724415380744477137325107155456067948324231340519019934435454880618914183123831737919697064401463703549417801253206053219344927910127617324064184564381746078688537756367175850977792223190106253139104227772953520387833841884784336690652428812487113668499480674871322053417999251046987955779106331386417464916591985025488907254727949267408973795858908280800964703558379378452964060825605723762202780246974877959391464056812283970977986848437440717270974807292045135038703670615241820993813728714818867897109048545721750530390192334438174794991514329905998394411710052210022783276817531103645873364204637750300443319511869360740642184067400002208420323675854834409401524754632532441851568097016260217952786235662155160475423822194372974580718469951310834172244133276627106015835778909502495321822402933734182943994121628776428100889219118217777185547533499935408611144053697786550762545615435405941702370244447626517201899570987875922715076896811648887281416338873320796215381708514519121286751502912977019125829799043993286667606346659084452879564400479709115601957776870573836005126083225536257219111952594821388086243402994442037032170956852711566404493239922073419237499808973038475976901996314815510140372657307320477779454503382896422873793833292930324074843250445249367114276842174425770816617781078367858287789610368498402874238892058374777987080337873981028573228021204569863785708479716224060310212745332432086638253096335954197539752404018482526988449389655389407167042846924147876697182895668529415885260401244543368030303820487347879887806582892190152373542097184228901391182139239128675026801809815316103199134477175015771455992956286762492339278636109503014721591941798592208215644504176142510950554569506984710425037805808640698832388950845524921441102373784845541608999679658323629614538974459195895561735421603690539590318692734142494785636141828995737977352178792625003094843839760452391102629366245101245015611259129261983950204642234236005395226928171697026795204377603421440406661384969605027890391232833768459087739468795372190112875209131025436711118509874541485488925497093753037965868841302670320952904958093341511489584261332313895726078677664248784338766844393788822863406456875492026169898708567738970679681162920081750374433037152517810367203525732382876121594248658032830372547780315831929137507550297005989315670113496784714506686249826697306061861747974463906633454289141765145119603300336030552650019939136598884157471167339887175100691239793008394545251462318931174942936878346783342945045645298770290898784355016759663058685329552754954562444835613497470173216098956636282124716762401191659947204692667838719536084431237016714213674100609204560680050576335963880042703022726023125776114439221997169946062341610538518748569068751197383879544970956029823427744660853075506249330373300258778929451136258132530267516459296979740587497891589467027070722677401214315664684844583323510777720951744618511948013518456882722816904702807842975353738164499297910032602310509649986423428820244023231109911737970310574579300401924183005251696414651974097984746596525012247731032805646693617042627616330582582712126317326983000062269619606461836030487836361995516318579095971043900441980070427729487557372568658338209315556507731236302112206347392315980214793073572124218839540190114100218112786842404311065050201790474635069548881601814459420731302483090818954069951165769503693139538451106744959272423093477019101073767841286596332373708328646492448758504245494881361729745245664492692065794341434280614487616314744255206164583319401859170453952418014019377716510590124504192701850691731643618733171206462427730614483546328416515170299223171433086082141138451316020874256684135396074298236774304555497092369652591850675353413631974140574976214413209974550280507656624304908294020054138147730786570430178223689754113886320010870363942993346859317178464461866911814486672950507553876439590797455828376603449555883692025198629756037339519941196352235820549784649948883694766703678367003859688675215571949944712305881232926633441992585219442434052762928185066564749260450854524552234350086875434245128779588656848806496440380226340219752546657792650979412252103916654743023101702197276787590996684381796096507205752229672756074744879883241225272330349983444745635856819217752548524423407963388598418671423822220440131520363780398197632633685542259937882542640692311954975746741669005972159566071653298728931072468694373984931057022122914481170833917980787252209642818683524922528225410995293093685483649528377360077508935265209396412783705923793582025492418265295161748868001460689216697898733808683400912830422218226965845461287080630512791249707389481153001586661000926571472877263451329717154953214391332812442436198180328556809892825116699979827982775630441935811971147143595003882971924369073775105683832834742137654680000628856755352338730100832078616464011964038995072266795608706284321015809538097020525930317034609749098801945035455111102166050850438999190744943132798244178087272610752025863601130085299298386827800799978407040246282467510751781540720531259677669842506722112909012992650393506858148335543188921570721738157276668706228447075156220956882199561321367541512717822449715484397071479362576387944017646919821827975303064281412378806122612566807796712243923600699983324487155836997215184790198403952187081236515504991461467599392940765775763001145269311324425000381687610585037341557765373082203630823350620197007979967424874017782217798695597465997329952320311961642972983110619849334425821775019806452848992639869871423399561952263905565607154397971420975724572480434276613245686529363849572612179208908141441750925146893968499184658793296483920865208667928860531213829255249057588867368727926567532964215762166632352532901344533222114096542827444820464442169694689100771715743321776074974749377649683363009634650255250213937279765986469597202454417054282857052702111805685537201204837477631981894956447147312129980185059980855625139806808356327731171603764282590676337859863005179720267572140730406853988178592676201221858518148079075321590061286771577848615122411170457982504409602145587310804127611566305008430649283167640053172536682322682458102671344131889985051409317348580652084810165758329236026206565214948170865015151061418177295942853675525092671717017762664878039496842596259999507761017280030226637533464370895674612925104892724912457604338579425196281432527508766544802406692586442197281171690997076783255512464140154698345858351618298749847787196197649018771936807838986295023243386057846038437090265646189573680454156664120835245945669445600484352853076019567470916640892243082309920007113574557703426189873864287360263868645630370250651380116786180747172702902596686078464379171790220482840583989799346324036064209223180254419143593106508065732323982613257501939313228465096496164777414037018932205900197631836539567707387374177731817133895143045166513044550191925425450413369438308865550851419098943040753719780327404845395372646815809066229455928581674666104016928365267562322158109549166176837810445026359558890085318488814234679647486517477355420753466536636475777031183574167866486054354760252130330873530240628300475762724676315566643884445748923189085065811640257591640121221558700949042658419579895059778814318197713991613255457663334206358953238906066153685854337982022471440388486548410214128686646547567558294699163927387986320979287817996949819052266100813537350013149164600828771804543904703103764471048995715568979447965049849553170383068406975135014223267779965599112433615810781745628613718315997326931562052734226084494362278335883093720676313340474512735933323061706168619179222532171322305565578489212399665794067374828894673447267236454136673599247247238281480349568853270853510053382112943001964453352966245592399006897117277579601566770949690397037780340271201280000233174836723008056999045089371231082677305814265462823780099207562500215491500706576908841351297350721340257709298131213324001023012131302184301122726640340463355080588461785930218771137062503662564187490625519356732566533780570241245211551533667327728730407358145332951197461859643511401560884638546750587136928299838236171339771139273574956793923203065153103835327061736562718852740476751589709065213626947917000661581724045617639009071824434924708419658530674572503276711914084315694845080115660732169122255301614098460846974903262982437248166893856767258479947866099982761511830252289938293718339067694244519849312222719201348739314381233160883115850018806831556979920068259300074271875442765593516346644687251483971182170483440013860066101147200132028972161081170500939735119933782026788988455633553522822776693625637927024867487126575578913181268038336582367795543890709794934616380012472817461180083268626577698933008954686318971771228629793002330848780163410783494022494032001576611101058940213210839820236865503975853815932961120060778716292123774459884636672416452674052660242357384722283980121011207670401760510311245673913496383689496267819251281448281005259750879541728856920108730108674411474614396432631498660920661532597535646814865811792898232738308820741077521820544667932219611520467964697550705758106299014816567970988541571134386937619334612893592937286899417883487958450552114927142536727725775382470493566203209234085461255171598778351238513247985397940376717806289938370001933243463910143873820679582318376096726403753880105599943327796849336370923654322542074538815564788039068231176478430935159644489330742835845221049938977142445032828336705814492972078820885305668245955569132461896485563890417317035781505289828235488357798798613648142132094043085198776011564068293052283666501482750042587281727765903280848878407236891276268200870357178806309916626662982060841766604978181465571611537027775255541169097472710458606607055593994485971016743984117576597817762639559411205911434087697894110112996685924106047853051378034663672851228044047974295883710696873565732675696430934460330485372789468659667306594847618070605550077582215966108170324403544312407731840780663687793298982328209685018548308116299728914676566579688481167984666559678768278366542565631321272220283011640977407241481684238944716770967711891296491555941914392469530641900256741277437586354390223568846358023652361125398596384400702278692938225072408341152308489082891886376447637108776637266937553380058044811396784041352934545165503001240325008711015513236185991009599936597382453441259021147295770604760081714927610031707764149392542223301522729979466813406148862556436340890033948742823340745176443002329725375810865626272134958943174145043958235221767324658670152328511317278416600516451124157384283054906431089722918789626187460830943456212579017445624969805986619016838055043513766844663790975352547758916314575184243336405406090558064425161277625634625535672970760344867341978662621722500300619611588773781488102081343644762074309615722354677926648076035545559449823500129918918856341141530138454555238531204129327621524103029308064291437915494484601908604192999387384043064215569646767022905295399424594366223822725936964776415245485398056763326955401385535074312171664423947727872060795689726838113567582705179003109409442406424677393521305293067179329782048181069068202699957215817589242380209779346599876006930201314495021999438097904486668661214942620614013098637899571052266222187975363714429967137640747935316876651630275014179496657254223634994573791595157601237448598513221605926185620114409754719449761529222721178217435496276072896288322314016875210925476891114871272119463250097779217404011522806982724824287195113552120392484456477744602024773894777991173705868847836596630307566040294110906759332696674042803323722484702664408540824724007220003411441293203088939232885293076660970206502018705379015792023706894252592813462995181591955062072358691933964826982537193295858005380446305146336885409768032440607388455698488829928308615395354350416587464732089551391850206274746090042205404924806712606580820250168740980791016862101983603155401388966988960044401857454267251482705249986070770660034763410455111263635484904295203261109805151867546474773479266514397217362082606851526397507445082357736321763216423914016169325452256707819698719571550382490500977929929252995009189795116127638641236760752367585487165578949658264633199343922074026492521414722151576058263486826715274571809196494394682631643622564819325528493752726007418738163016917900799470191380147139158042009840343013965159360551557273097144766833856290163134489781190166264182267489291850985251165616784705124618487276745565022135938706946702168213967223859737601623466735478598283391336369070388573264330822030431378815055291472252894865073972187912648937014123611843312261735443356522650676328127604944704216996116275909840291039791798029033033280744819897907318083623126836679479721708543291035713532884656906723831575856239265263601593422797400411773990480079641590583623686820777270092433631888134060817131582434081833071312266470371011198015754193486195234835023791738023798770588506671812256845226954407677760657383550464770279354451010284577515394921409545228736112292215406272605096638741407310533691111184671603238530883421223194320148670217287827404212010812801864938389362719667465600453029173259000303080580206533839478326305275882813821445898681402674197196367806365262500650851277436333993025943721331343968678226138218029875555573622667919986137229584826089221705373498631292576600959452454643276087188739474627277328030464852783543599437585132297257144605392696541766844592181586626631892337594957191072811555213901267726907600179550348342583407202952527777549122334560650953916576925840948249558286576943348907158770643670659001622412706299080918735163809758668433889187724274819143424878860377862669905908429389915412591645456895419748497749990659675111099292553704201737156906718154164136533000682709241402401918305968966593745409956243006527485561511257811854873154042136960266694404796578009810394806664096899212417474876792279732095420200586882776928857660408501203848118178200379519329059567808258022767127988782858931562558153128844586317272125573149922694155399083105312082057488711013275570518190258858836759305906534181926919008782914350070526349291079738002396163621540174329592487263252579097826684534437746360749830852848586987807214831388576790320294882034794075032731128315515243439362973381585262314452699629166885500613359101704843849484179660016595623563238583452921991854452773964513364548535137054627114683600290149590443311734527997234463299744594652736563660541287234874851536490212795235012071676111748372326507298926141131877560777786038757788962089496055829471620049802110829190090733685955486940084041669695136503231225262317370842336393757911561138981772430544939433413694702307436707357110763833418251198785107652608464914910825746270844214655176075564293867477395611255722129074155046001010468313105415171406858502118825617817288433673851446675958883101387983578988947417018586080340740392504296941596480657624127415943536512783949601694008449626595924279241834833334387346492289343790736857544609170537269421038093806590141361044697275650617096818899369704425659647494517816258092030665634740621896964651190941694447053748427770277517913456703662591974637324483807889185485903975140185942849193292659696976258412349430033330492709981548034616644252462075863919039278495618865282202396330273864284088512875374105115313965154460216633147577087680188703644235705438399684953881560703602764808104917303480958476230969800363918874410726963529120569999979040887992167758946675145684308367013831141142758976881282158589421076272262869656395195131048670365099850580858265558901969848842321615389663973777913378005112086609385023779910240105499918766885899078913996595566890761594107383583509444190259614259978460131361743256537375309503291591629349948371069355631604074499252849243921824035186814337522096339333009052707271767937830647844403244078599944537648504604349854375772130724825808068542602732938766364401649082120700699498942376323965637036311423733659836675278014939933843438978091540136045534352585507099811819594693282737795508414733811815671792103985362232629580843256804038433107838873804497639620896861921906421073730092357952240836025488358129390029726118240640042859966267748548898492636078758811438118499362558638770095670625962939657289435123029802991493324665472729473449824358614663563596346047822127009641149726656299981598844862436236547410478308002965114629459813217114935625902364572244500802339057724528721265485513792762975382825610295402572753683197155829279722868081490604606561131753235302309449004142190033026078985473126162052077070331245121403975099659976049271088810261668579874760531696560488132193030032443467429688289489292560474069103915284527012325145251649609668934179322670076304101969584887802944607363140112325196502919290665607129582149240071873496263664583905948427247162508259030253414154283498582678846082553331914031518009183220430927478694075339610907323612690499751469540133570136590356915627714272645285235774051621184214020185173932908958899436040442175105228378509370758230935923857295818339584696193180234216131031298846471209763725059789263454166235290411707912787394742869275095063133280802754000392629706466082492713831248094691890795076433607015637219629661659711340476026756108539051373556991258702855334578305928322053140429224797039230430365307789230691555952857361166184823565460832679316277817821925609407944393479110135163143470930986580455285035164122074167668414480303293943097015585668054622037932655443501810465299369368608754334798158575824745693333219363524750605427529773535042307249938590267294708664738577093984600550551341804274505684275023846157658496526758814012201752189702671593261901317720551195004892061565691574638621727296342213591870511213856422624122836736472803609454792420177544563912926894524955533075713423884988464960104306238216732200739485464000956162147323431783715444483731700352165252291451532116007619860630671980381337455658744107013570786340891985074784143148525679141684152633407740166786287668933682499050898445883621545804725748558638761538813797232517534913879533627887226862298576288303827252007683834079326097942669328153024710558221814929796189059485766576945583057923501157367543316023857819455690548117155871364586362006068098033220478393306968730187542378892688096216062791169943541829251889496713562179889323014564867885065882805807440091548395395878888582134971385097479725141794195473458498090992743188708846603078687230723491682817686358951359468825629910113120107711134473522277128990376870402374766928946041332861775376291860851276425746786239737000686926381689089980030917273523379928892637601307978679405813721694634062545313228760061759370170601030393515392155029261446213659378364794422444379647748657096516162611877538521832669555276442791953422235502285073971817891994395411420579483144202313603072448665879274912058798887661700151715906636942809631852326498035118460608714465532032990848801761894623587013615385489684891751917306755992980678326508153789088135379455729146633646876014906294319095076595742799014981729504187282934931583499737584863959195198117063454546745818890625427001859651810147507045068391717426056793285240461776948114712226543651162595540752046001430214915065000202186776199245589994719245563354548643216390864568631357132727493046800116861792298547144885586364692617671715701880537125767546352164419340781679357444985017703634987554291356425785319827126888034314931505714354994227495869570802705723677729696549718295869944922775283809824633156615195589589801051872324181393406438584064942252387465740384553757201731340905885695468548216229005421807760371987339178320239216273822578263011635568415264186339345371321401018413014793602583097869142392864194941264315689966563546665175767474295450889781694217183014114883543993506882316747218270110518242642536134277155668611218343258073633400282552864117085376469894700349911991612616733005943901249691687275404756928005828998634820914518952147684970354312550251826608984786722742359860233211574229201734074147570409317097103311477693234434317017368758746327564694839522281564923241711289547526914974682217301746222234548282162532056565678103966304670378358450682533519514964878544648636976805209569729662494486280570725461715336870811853658745446069702272899259328050990258862256821683531190217162464724245005066365945017688461568900390271788719561755879597476873793485292708390539831805803211339448763250867132613298668983511932815021882830755732434893743934395538502325738522806250250901371030322089432671450116391827444422041451868417793338712154202018603310371764365868785537188296120248080373793918937377412654165610209284460584157240429531225505020645729294387483616957461973401360987334284797368881305840292262311566308653361748096620099625909022485295456102487546950308752962106081777132296198721597168081425434181793540895451504972920557025746985158886014983269148759886616781885878675513153912838014950779914967788927976105035107323177467994620026853993789488956267805139721823422223184102036362188640647156462900524088198556722563466621751279712362753514554245712259176346310250703846456212663902150682958488167717501028429121428215164528833498420664291536342254221545367236258164727752813990944635479154791766189463178993427888898267518367118185721375191132505358072830288697822875037638956460749733597288516419016087583863519539831708904014658740395846453181706799249683729457965429467518970938806827037712576844880862856979234556730932578832723771058401045841314177968177917328843192129715833462356973023548028227050462683660068894323382655162445362649545229948035351476357836577452592415635041646407581146667529629061239268311940570700805720358204712209747536642407431900299176202655723398451546168276187319573208077940113213679337350278509450820989933124295526978379974734029349589742748769732798841878563123085123703159286966698059456835594590931776289157125390252289219951837530422987091243836602073944715161400844450381669989748044582327512380889531161434395303708309148552346415423615226558857443136805474847744176878010022252965420095632327574634226956824324887318815616378636464755027474185104185992533909750736586035450853705195841121463021852763917165988301734636786877550387405724299264576157771462938395817482577179872169993205613669850387125177679231915365640082866966166943489653509290173239387382039790598003939257490445096302263608393602737315493932923888414232725188704634508693656801737998501552223996478639223693767961531722849218983516396606913976461894944934801631397153268275468609695590328504477619055123457794817565944712750949555644339986635955841937260467849371977509157160288250758193149564086101671849414546157917595185641066179207158801577844702515142080988869783998177765501018084570840436208605260432436060157365725867213423368497852807348340342500788317080957134916292334688832162876351593631735128407403275759428105621382271347511106814634550572222465223458862281956072128473844345834789320726139776283088686665629905638774537371927825695804127394990433242821903882184653707216366427121046337051812901302296102876338820235245376158585799979789696311478108539101253429246728592870611375506264253556559539280559703566249849177605661393735709161687858344195650809402260401907140253901704780521950583791267112454501379453762106973035769654556422168016906008089844194959396950698862132291960396860736102007422163297500734107088227224851808710465087532493382329668561765587389683082673044819668796318645800391534550828236218911511086724917784156893405451746054517675698663845895605717432136200342097396581627961101620926657840822317981786380433063381101063306620522166342172387222657628741493702698589768448186784341237499844682701372897535122063575182251789161064700104697265984706262861266440877195209701097818858052450784215410375111498768249985323167350660079089390651870839338867528466505093500301297830879241068992945362402729106969388782947044646860563308346106668160450722854193664742181331191770002715374547581590642198384664066116811644560348363104958686311720733135818438293684045905601173039661929943767952488361315175692252672139445189025709855241956620216187625761221617064519838548691066238229499461146214272513580410793228670872788967204251578847723543929359883579189386709467558800661476524481883114749237114769551791976346611210907692775748050894440251191369273471905988178741213951560652070312371628639165865216071514501856175717941276814911000711817483251811462274289719311186591816701379292190976636370518454469177062593206412419706617620629038240353954143342374089898686189489796843637072681866210309486361324566665351655747320984988923257132658112421531986950160383959251863650602295104266497120040066407081404251254190731910050162667955052946538753606695315876682045942690782404879195910485101932689352040180712003729152604805965931805572861749519573700708971456216070403183698289205677505204461058903462335802901064850649257000759649315433855743755267029364869035728750263143127645597224085583399858118820878654852313204436250274730501052487469228471424765914100089773067381995923252159573050066793713035722428508531777043825131881087798296301065652844619637207249296108286001794559957255609157354412335342303246618100609354331229341204573420146922020167276694761729977775501579921435775112530009511846626819587221165066886894009307400074073572595059053407939565469437399898063213608451743495412137145724302479393006096728489694831375727148942055601946508251433698023762105741371978198041146425787944798870434297616221758517363107940506343893142294340796004130489886124321786317668168163214617677244175392497853735886043239777727415719704929761789982418086763072660901498917076278180591520862752848902462180608478857501583362258941495482172994372551629096539217597370815644550593540750271823351400389878839537673070808091977517680143694198865202946324365570129783351556380654092063187402318647191962070781058175313397679621391018175875687627651074082015611771067583788821280951762462812709662368482578044816767720171856970955874986841446454941875623164969626828537114711561668353955271699325483066960711423259793240502355248954321336260682631067706229725341309052603813228529799037523355195423297009825787601150924966196451100216878467911838255929447162826506503339192910271571752098217069211823552231081852226499487726072250780641530370115606469225344360661285650096400224356227900216414007596154501205078873374524324467390489238726404339519589547914548411122839771251272454164601176749133163765040819852864070837682625241395932179793039280579224141736559005025679642535258861747135165729384640063292129584998782777267078844119893073363093957039032424647376901948015370780078751730166608938936217895582338826100396890891477010749440966427473536180468556984608764806290704109428168648286240465701717830095649078158913863398384085834539731307681103943648817648893307784377763357479982572361453380915093970889116682314092007944955902794369624726089420051249563133588064817763168920134922457269045512288314714487589906748418544221805895101121383968686195939320656752213684323925584052405760621312733652251247540478252518991930530305306230970240036612677745769857251464684951601764873470693485910650518806068814914883197123430600818512571757275816153813530502969330440482342714103532320165738555693498568288473861488021975450377848165035154194783009531081434026106185622265519094672758909090305719732017191460562790236525869480436534580400373542194804725028027451216043958061953785262021512282492801265852730642050320178069660467819718342504448351425049205545129515318843034530998606023599214588468759029816926568727550030070980030444504103003412262784285343681679112803362836359951864970730407918931954812936301591312530994274567840836183067600704490491520702782150665799813988649233514637847770816306092074005489387157238744447513407085944372116561564145116071237643673065654314794719105232130490134858001292891535790158643103634273609885117889506332379363775731135075221919953383660961001582478959570994175842289849488810241319977658400170213770305971005723352014873539784368176045538683965539051685853065544947066436936248991020825991759821329309556310217631826433989195846812180453194813085679177509085217098004686774735884696970187333865493767512599274276082037549721558835733906293880650506531872374878161592057112171110597392801123718386188677873224528704824706850915277796500857410265674661243965997040266604566307769085811984376235316460780751786505660208146689729601820825498316551940864932827033795133923683982779449069941654955808651511873095854430075526854395034156029120857845351932243673074040139842676266622694149843403916352474534024931458605083132423035624883207486766516895417044203835147428676404138103899309665442056657517626045440785045212613859179106438098585940955640576091785281600933560621662782726892635395525349004307877161790473150379777449060539601378311679373424819598228411687307384574541722849694233837204804486692587025083867340048691212876004041895175141500955859466497551274117292604690036178187529639700391853448431309202524805396357356147825492836052742937139789881865561086069438688857562169653559676375529336224047679217697409432492565309739179610867522969440173165031427465502077052877562915253841455305055308142392749850957017780050953484227402325152417586718206540356269266114355261528501770892679897216359564438422314666198078308356072204645634814690486265522729488575114244540746461222004569823670345213910988510309703662564783255125937909252783134890360531049230295664021028999500143684722610598982892583112723064704296211996053856151536479213062757281260673317970551945899333096183979111046638174930179799045046313968853548892611905136061131478678491918112414803792186279571433291704747315832492736216705033198405890026145656480149031039814634972316775498901514743839830127574422693055782249247479925625686055899888821489321981086525192485303378219139107914164650651418294195673336230516556451663922116745093636264809854044131127041915079000925532194406783627864640742978661208682544867233042204040862114260243309006457535227084730636026426396681636593808738586557892520330941388099218302142953848579147125031909016434446286436845903713003226115135020545530477751030312231658553658604483594005424519474484562153971669489417484915207370048815215915700224444150260660423068244793656498964707774257825615468552493311959799176093289633675537861941647386259127980331264783224081487531214431061499948631291356868420403332840580696955336227780236942128113090230557050698773481227720838858792251794178856911883836974254317811922381616691053030362401874430578245419841094328437511277504874584887210181507154771220211259435794894223943699012021814605120656851321765605437385735498348010586525492189991688676493206952511907298570752268636752938659143326070813181992172657447445772322024370682207882460596754517267487713129930814730383230058246710800627501543492075144051761598551796496636731658872281466433355244581039965827780471440574395579670386455342879617261449730686746287450754280354235664093952037212879554884025454227389274099021042200915116142170815897234027801414894256098159937979925110991351623753389533383763260829437519137728492849613557565853970121973108777667592914795201826906097763870114289279630249328042578570900878919563451903014581228609919009171103594111302662259384028796892649451319823709639762951257009742137895091381361390600426385338890229580184130855928297563045463041632747777833998578507613124484554375952074860159521586325421291404260819084489005724353377305809598824173657917614346369653384492257794761371403170022033833341442352431275467434447067050042483475098424404273096247395555037358704163714192777431547829457277602684547653640208430382762230526551824782087013127196447596037329833525277641606165923487116986475903793968339594990473348644339465572912019437111169342862194465912993243711612859637971809118494932709851271026828090680994020378849015714009807678412586589567472360324954324276687698738637814058185184102326489667097447022264595122311034179440024523677304716836140785249189818724572096016591831598110459497110399922805072165958414559041035489057437743607990796459329652410594433580370397422042813867041193793769956317249880535092868558333462176466018052908290864700299121925715616869913571693988200446983344823248264936302820469375233752025866601817579036454898385869881442588808251100623441786588596047272410834512330383806530305588859460474771247488013051958797879378164476008961850592630290716725467676439688663852612542768013085526648021764293265808331710490681708953759573740904322151427952357690216616642666978055816854116491468416579303304479136247342348560515800115596965330960368114785399494975394341989864848714481672898889719827581761562090690491097418089821524777489409902823741799694904626058878285078640149646079167538277093656417750994166006256804361195013497307476335405038382010603117354303802610765953247315032229239637474354132637634883486577464160543013615497535781226119976409225134144746828074208266349437626834182690860812057465586450366861799494343720487987591500369431404118254359119731719740192568917429759771969049229756307306123679153783597884519910319839383351483608336148700610987124098664315471700308743174442996053315100648810676641500125633738143139314903660487528888911804654214920631221058149800069209825914088869689162808381544734334530748997630484633633162122773582799220473867144984780166604802971373636586311775017113465219081917545361291060699192262966124491728759313954465316939296962407052109830549854397195529262602871101955914576152246929123053068296375562380710340454577787243799517923955998235764440770797802085265641501232898057569710479116996940503722270861998336449079998603263589418753083668611475544848958584200765189826641043381283689464756336682923372152991242816084852812622660432572149973971019234643347064218878994490975087223306121432096367364907777984208845690815315880981310410026446611827777789587162100880609431023990162668770892084203970848714370083321745611213590659884502494265516903174294428350252840934428791692269737598572305958853330879892554872143653388647477105344144290111076665231439823427033686761861314502931703608073272058543447499075858227848804835313605899769619952793385762425212000439195668678833042175705637726466823816318804936236492194529446952639389051361870584250768320178211335405340712029757669612468616308257323636197797563800759931786715407307451821179506835765433472002392393949143928833693508240610463588804319124257668459452333442546158367185538616951264096466673133025973162279166540321686565535388941962688521280434860716424191405892742157176064299112753283824578971101555664572311063315896316186087394800794200764116674337478083516349324498949443585831058969954297943146069763779896426325294218756643237168237537614190584621248972031667119740226088794675903701322110320585135808749751925489242594946894320879239560044051050849930298257737018139914951875616373405763362834634678833271779929418069420388589210921106541705973401386708040923591360561897250342185065552435105668069917024697854162320014658932247552586530519440335299650069902524227491793521005029890109674898150210556625083544478091589985742817017360494885992126207787067442199985926611725130859604001165567498485938476698456011357425512981319150123027921060702889318275403501094333503580260672541567516140654914316023027594457622231727601656874420056745036085347631547916394328041656072733757913382912490874336169645977837705393851566006586155243965900112551727990179771866862498447237176289567099297128777921006536297309253048310215685806199333331594680299559953657182017224772225345416356123338212308902960457938054262573621042272823450562624129859791711652147088913643915390933342166063172859981698486951365005822059354629691115196313942001878863683069954444095056892778436220727846135144868183122161248242711869178270203416796859535346295832644041833107046193256533710340701440905497339328006563728336268918325578859208745569109176022096171230894003760231818014564986465042745151581210447538754204281761903424990165530661246293648205611707065111889577282697159951228567952188052250248010471537240748385641586493607213244468287649136114254080326013470601233990596624185729481283059065578392109932695854618109270680797379338968264527190680283494950438758650026502059542813001403642822329040473143657481029406606904444135581753534874485450891782692400207432130539895798029591191124118580177662914081252343134109377713626596404681624290061278345021708037512870510874922320292396785131806684073927434991332391475089100580133983075781566884935368884533941297291897019167757529361309018422516151699932052827012911636409845067030092842012721562378893202092920223117411940666716352191580201489657543620473702499125997212882421669155348184017222532220073716860331133811448296616576438902120708169091775438944878350157175943857956382994111556541898256491162849527111164602692275897072383211400870693858606518543906674394934948183681952669560503114470103805829063320471654710567666529055978291864449672752016616084034229743117751584276315133411892210187766956966866456360692794341842761409583582254685994403216701948097582002851538745109024688449311194458560577709139585429935008976288716230812989566878145805052091882455427019206496004884244330019826542877666116570715764273296363002853151502839888578763497286345768048022395847595168560623752570361747655593126706783826158144533252855314515906509676974968141110804333354156000434580340067826411958510632581171768788905742554513569435710874989853929202524296447285619364599972827570539090682031879311911008245371716644434398203555496177947380162844103031644727602370450644072219786347150314631275971514865696521572230168883850981961694218106627138151506888029670766662588512248355497093456488840241684372143492915199678780291379140759011900649330580339469586098853804845828113329455166524064998926589021380798898691776539571140025449786818792698121699662088178348142823605706887919975518789895876815709410457648541654901875441383842509248740490172088848337738730655011477453992126440203993494078860716063072609424889716485760786231881511770464842362398835147956503347467040800986809543169665372596273665958673860004222715283447804432948442713477788855023269660114135892308524561004868433069974808284371629929254083581059102925951465054136484780983520135995509404709649906273997886404239949645595500429788361554078390437265673138170233054156874399929718071361415956577592936008965811610980452279814437128310356900849724814154953610979186238296894013580296075431209926864665917851481641176363796993412340149651404800449458054895566828102855348045450359863360325278601765498661275465393126297419607604633383203492903694398255490879139863810722526469388480077872176582555346084618588425379034371934708571828733203326476011831701970345315583014663803331902194007401078467730567194803042724530284490646172645613285146047105736574136632737377189138405963043226938077030977590026022058442135431410678503339810549447537927807765941611528255670287274169352875679820552839199797513437014114160524038473372589468843436319179980796439945452802986877644607612299620845777302815764355933956736199962484208516099259633889918081290055721564158816779972685011941361173329344850069841751170343275852254535413764509161807619969374223119902980065228861368764219724225117830780591414457878979185060169263365094973956006654132399586758260614798555643801230997141621074719843684590300837704920462486025097912356169693668178737273418037523755175925637646626427740116338406330315995289943608471330508865129741290960954315517460917519180574996208655494752128715220457862090827153002526791793326227110608053670258221243030287079605517633079719859934666309605417097183259298243738245400936298821976923751193421790224477039410191606883930173638481849619939433940713557420375293148172413910304414183907333856613978989587430162301346604431274517485870150808855724197414881149373695741063394253905153365012941712017968966587561124875410800502344574123290300022733983041239266485630929531536128031554687710584621598991808203522165730615717009784584483504374710003408485708285197018705038548736658938814490319913358119381276836531788551117886432130051169948219296383039195695458818464470290064891350997832154325057037641405320839569510357319598775702098141096922000184436656391324872231607059217537589013383032053541201983129692841820171127326496791698306193010811967245206615399558406154855836899576153353849963995527823354751108206819689246372941605940732993251987157197705699082539517930123081681265539765845189849623254143736042113133356564150406848151000776385173392883136819740530910934229510395927659062419205914525056339589165028853141720461907159091523601949370297589232027941722308994125882621316580722957626052418406817712724091729043984701061043647675736591230889509539784773619627473370226614154368270702973539695779048028364203072962338522633979947051128213415667078217752734954488406740285785096774456636078271654813671700929840096280146943566931933729500866601960200320125381886277296484298162515028710974020706674122331055525569212287901632296512993057682022213896859786240682288328025259222954768957370202027034842063946730839777924723020175522813799635314399590076257669314843112495856793924699939227296811410841521975606751333393099747316091866024488128107887098564400406093067463663678818987111270500793086602477255677515932409072251782483951443543214986680006274828056332808007711132443757660937542791853860401337028470420031186809301619936881057892578189184171512192576411678561039109334927088314625481548601737920521408563446318837492671526591734670528279036876700927232376979887558029943137738374099480736522045321434624076399921911741412545730258663705899831465243410069946788531158373615598132307209316284383875565885907476188671565173674908708578735871797678665853626261903758973037220965558079543283956010503169970882601087707690188591664094190673846017619757211765209214327006554520972098338262582089406823516067004657001480284998645863482805853709422094171913112531061079312974135215093702971165633212906579635482746995605279225485309295875285623207763955793373122891401723304010166849435055635129120778294085223697905428258873869338758382376769670644734453378586806044898020290298781177568725050434337225182041368761840452929094900178449007522165338030073426157914676426017660317949225282423467745754308640857694642615999742807201090602266336615830163549156481493024484788196989132617812949707391853495296407475690411142213116256683108357768409529630381125906470033768098928799670954847017451138392861085716145493965070681299422396195283188485570812819209010058453477475200277518660419315057071974193984302804307122645353023388881917762561698545500124699940779356946768792520177445096927609000878843759582814248886445652376958699303775985952961229206116451877061510007478154785752939608530016361432942468075896399359677009449661705838407318369883048378653417842188962282319276152850682315417530878582662199302403789274318271103194133631111682626806532141019830841628929029914951439006041706569097799016803556203123500073260129461571582313568897830787690994832705256751213939547540422002987335893286480991605988211025751975520952029464991220840862206624313791020427783294291352300250032444907925983245640528930509678747090095214235539055192077792170334276794699702523362952608183242420345905101748059417111868650695508016141947032682447412502597492460302580990080052556863949218740361558314292454828865120178345232109119205696848002061146414506260095061811233041994808537671914276106599860981597809262302676980200416338973855257320298101302990541424068613828057067853173171058604790821300799854272505265435678442815731050091314524088576687197927082902934760488825680558475352401961649229049984502646781968605286742343208835652351491748362806812508923125302344870526191734700618707312444822030727428655846474252547605825717361061999566552381034794693932424569064978236936729689295148884326258400612636286168883860684459505766210755149535026573119900663210833289556335079142497398371025640602467049837887746311053908456812897026983619859938891314948202709757504864477108038683674558557383653644066152012771097977980093866801968197060708240005060033266867003423260621043967410574407876102445988599803076396985825834870260280617146991687216673884312328959358134560648752889651775745714843982130017295759658455251263988431249727966888936579940592277321772163790886077510236480623335330793609277846987218307438685346834094669083913892528384736083361923095679913810699653535960267082096255264425455773919957243208726378615594376250442984069459888486461449616480315678845986083951419777870850165469733803681216480845134552238815456457914103907319867828496927277205247283079229336514050259600791030019491802133395461460349579079491430723462405494599535849951506055594189137384145111549548766678181748947529520316866447278441431083481607743998006113970726288760965486207384754640216345297706766707468699096432864437157552616355858817039863838673444551922893863747861762613267992764174842842015494936363827517811083008657833984302775022663087074922937474284142286010758616734643179962353241834444454953297729130485323306936704136478282417899557234072258524821540811743731140853801027917822011291480624037163968323494445025709193313059569241432140315781871798719245956045375748938406992530717352584501834136815802571759833411896190674488594507828461224229890605323067611691937044837734538633234810721879206840174733094967227406000783518624198251661249501152340938048334615164864227686062128650413541095086086935612235990820238439797800613523848737996186754212008386352274741745511659209356743869543204012108682517272410208344582407116609885193966434023518352520974398512523077595019664309002376984027177142067060835890052546242604235591182007674273099681688297216456799716503651219536780403542273233033724732507916515747167258924559320804572274013992200775646678288267721433014052443908094617477101467611872330038201096878029497697346154635202025779138570395553690183138560054205117365898232563060952081892845041787369852052125330362907643213538016545825598433038454777817680440979139834606551920807060161335154406964989266977076941895296071239096054992620501679790749311549152421558940632853113300231047690963938168783287093229773271593557340940014133436284583367469669775308491426394056222509266572752734474304138025600742562223716777793455388075007713390997275542463507552049659046436151503185459888747534603513454336412318737122716435708444679252723739068852046552991085616209463666424285795370097083219910528852649620487833793483735048236352225515544634159080440303894718686139075438706761753524520946312458307216415758162948432323341731716616919709600140715284943764573674357165572767054814609268621878004367469750616551457907559798720414196012097038844717947859326403248886369494856143157404146084770633830930656352008704008443286432608573808084650106925512736104463863317659514508271118117081613330966394687677875450398632401109161553933569989517158932081824967853198197690573701126786688133997565472983427394078231137187377264455105315106222539625117107001113489212141523670774593757339217971439476974828648957933126025462534515907830170153135929929078475846822460266925094829049053836507722136451745881727812825075522184541526447598487029262341081417378828040682463797969203118549813330083576052448363951352179435772221088104392133288449924668889178188457936063812647425903282821577200512376419816869790803298375743376994054314344509264350293369781055927412099357225807395088338904179117012706727522660465266159364110286480063965442181791112231944608738655227335819117873377670212814758874355798663853470455860781300904400454228992777816497949299883549261990570317486079398801883585140839997097069118029042836153985655252435707108683833603911850125371397012561576476834390943285346556845944310472043930551264338488025386619156168495011566376749106039438348916119685564113634776168400134861397499574511242318965482942668789570541927456925354843050829247566367124242542677275044738386201453544155773885087145038571649345682422343688841071909832574317350556125418976806191411060839232749932240407829705284249387143809621584534714367843594807527207411972016681913053894396018098377557867432323461523109389099707206056204306298647798439234954409748081413618200527800892955123826261347718328279360263072622896807205308087843812966528908655302375520004159456119993915504026465340444277648446697274254226670824175273244571976728519564136376059775439018262754706629766779711559108681449097487769012619933203356840950401672933802111745355659648883907714710070376709877682141039204585155852784786216416106017267842151274722736435181029791452891949642177015515239505446701004777170532009468258133842835448025886764933093766997312701969658381498316020966210913368988838952705779662032657855245485546580507612968188015248011854319063429153366880155918305522222848307116408406385198450366949157126376910928586102663139642115795339356556366995683539934931101992487041556685244980944407386535934630191313726040098877526807924043710153281508939054895145966052599747119075091697953346379849372623302330548775193244675559085914137724123573467132704403081046075951259889060216159001780831384188787645799226582738395978155202685995500005462877001908300698506674826292888111488928685994678044120059714034447801423335386075022467142313065777197301691328609362947472659966412358425966372901569980693919507392533748415377177457402450503840649887981237024852575302546074312570161203681881075774974608364154167146440628623847201082225075996374037488228138728352228061551606690406762067350203752873667440116259040276898569924828551552588816587331492550441688448240104367583135985820254174272005126522158461857670149217043452682391229121392830365555589411031417469352375701718886337975063353818275482225979560536551002227603282882103089583888084560683468875836176011353459579391487649251822295471982154329344841679082129801340017290331871752285575854036658463756927399512650635339801372640727964492345695950484954252658530105474165606140006872944641113410607008597864316346356259847167551170311318836544468236056854549764102194055735606824607143880993479255459317898441979648329868779767192429377251981059823332792273218181375537370360710308891250791806852216121256453101506230492887461291096288852690933789923879840590612259570559235769535755519637213403092108809674132992957823411858408528002892847732725564627126516962182622957901392965302590256292876631228634178639896201409375082262138250634573833284104678298661897940744650797876481836217974470843147811510931481082856587444345060244823341005211972884714940592864602748906061869491974882699354670862857814302888509220180498393576822042498980387449673474216625685285033621782925649684498871033020403015173270820706836069691747786169728589250862729257713797232755199274642857800594236848234838871619859158808847043387792986370249463061558069283904467518548333022198309490093292313711599777617778411495245292653243801156318957530878892685588460117149529397749761919344029799864898639936482786556326883685375075964686875582670375010531048433487076226861779757349809070309249332625318414511700121856513261467037447508033214863415086385243817716919108087498436078704381844083488380921283227962650911109668495702067885290866936882131130691619188463527377089122660345690352195336112662825912316392651855068470474979054069904491583293482620416905292915440531447799796382518925811773235897174389946964151585363223708198480382976928969549372430275330268634666107736337566398744870729021630967621295712522434808619210892462431329442672007526049403732967064513465063015913087926853386336147660704073979368394786634165049183661945340216061631494726584976689210254039926842422022159223709201848963412945490108704927175944076066761181075569178299740995648546615881434358473344889665238154414093097586512533267281939500201551004240646157889783338453487992208659549777739461431289208188971588196171435691156206736429474977149428213674736363173117574088293535299422243792689180158942904340722465130723659374304090512008711143621072380725813274943016671898576947071376357851856321278478048044026264493260801753650273321594982481501043032914306483448378607819615962635464317776179301648246505288219180238708192732938281012588747727283350575234731711537381894419930079820804139710790298906970744256997746098676790656738758982392949512865618951495695083802905283035679143944054835056123990510746826847956691416510873320669099781848613505031955035575093467703484451308861662913725100219022268039068379894034161864288339863089658886162796629194931658693705272678385889362322668307686579528317265249700081316466773535157184822957352887162243548189632034224989548268916557762289695090935040368626900612429022794684133766295289814122374650647854360984602777304714132862864554599100870837403062413959879104333510153418389195816046147144024198359418827767453767317148965553697121386251329990843848362832978026817163054836244480309446067861741314048568854575888312297743688526038444666896900071270558436162298042625535993438885438433302264795485627698719291807474269931696543628819105512293789415329093659413736170115397196772610946345933354391473088017501844433867774938900782633246132929823755440402198839582178291340802041032125678866518343567450231248450457078181392487358846359432850921399398335727382632058273517329414073099905401288991842698088553396055375040160374317161823431283247860875521095797945154346481759898736303313511925570223181696118259196522436954970205754608086460528425136039505473448749712904199815063730532261671316342861124215501957232821497514256556202006730279461983600152984891087920734952118814078054170201680366893612861876331579482275090342466421963241514789329403117562216560810369867331871596369835098578145979638896928924563595335298855195863728139965478770087551723781641471328720747883945264926408607628519895830575995275915507561057541873936840747077002156474962339131425279767952486084517631231630858797763032756744694975978300798065074369602437625934418202256102042711447508008986884016563074205481619258527132169198199840845126357962578760665672869891913823957288495798682511492700373025675864761555674084024827612893129737218843320385496364117587352711410601642435175017110995326712154753251975420244034116655563964350307496621824567847189294036082189452193606045725957734340136085708518596153039223614910864981169009096861652326868950118480198216335896037219214547208518804293003503238694758602188400523254760228561175770503465553513040018753001054869420033597154013389340887511459244526810624879398685158829847663822980254093374858022311842431952188995960552582875020539493629546338406107608548128305084084361831252569216584455639482193238805271214169962212804631724642517845015814423083087398683786677324291924552290752943185941151216859503217655036377853827865382972212432282723568943497016544504181486437881587538123214810484978466257108154434859609050829751580629207627883559114099552167123169731440759629116588313465003517190453050215284240401561417542052902169380580874056974102145235409506772209494895242968546776565129523125361899457001415423576003686113150699309823957764663042783507380133368889738592941177453704692505112698377730210255690258680390405269999487316717275574745008266522400967277434473291045514898302362947287139665902037643063652004109657537115139770835033384412016580507248148781634662849234353521649995697808929914184733642724950696625194509743839545466733390629942728866324095036961491114622295505294428343682961927901110329417394859994769124918749298179794160919583367263035998188735512713464660421747504184845248946713613371016351241146101338734318506062878062742411657765728581546131086094731309684330018043146436144871409903753265562988444527250321038276416973494104742925432775223392659692522425863548464616343776432453925837437372026867390722162134073908515035142546286696848852425086587697423989127325630425625260753931158536753691412389890366616456317828705021619828803459308480758379864496586157098297648890499927515280947035422210471623172500897048894140789582937166904528145681440253561137290598899791654494233773504816301992649822652443065670877985667686264253189071320861785766566402791010930898747987084068788442630609804685920283574913744295070142928642608527951283913710274027722115858316848865132325021580396487796592636567354239775872086483750126800952252104104495721844878457449269333369798691587068239431816316125366692334929865225295121224282986063048705541328971258447574177738103770803869084620560774305972583637886736772658557667529698071755548200473867609487768550658498556558036484217732804581662664769438971953569103403806255782562228597733767272531676825020556737867897353428008190686634594868691384440285531478821182859878419611944740407480182909954003118089630634787924460432924952482608715297660064194925807805549162594726767778529875877079333456663445627284167356436434876400562861190549418307590271090678871170203710322141093423858188526810623056892505985953833691279946838793206020023839229065636836863719251940388904487200523440664471091003578296852983726094275989631987051524562366761828782756101273036903626912651193012453769554706626688881319146390907296457800657931405079826245891228908424166224767720347031781007234189056572225883780061219890364272844449478910643307335046051411424513581343960328007539373617873514742103331765961121042890397405230209659740006319747514944968708731568000422701686434018711283070201338422956103220158354110722053227802898915311715779195766224449104076699460106245688668339848596305871629617730705139857402436309798244367501093416410599799440747496762794412620768621727060090902200631914896477106509355169623613954213846781978828537111994116876357947834476164452617001276426606002210698253700410003845347862084446951063337799788660184059610554224329467457828905343780636252781398254163250715344990747059207622187148149602863064076244454329208907655295304013892440197753017011806001278172716567855829173859568167383513028001595162065416830222975565931169408294753181494565774358483633379232342020651918837337480763154498958872781196481663286375950565857534054525838228395670805953336548455726679043812549736548591387476400794832224703614032129471561691588442883356091949467174127693905705130945384129462852885089279768361350907415710405298385736732766383487699363730295762123809685581640135067259433273613509343357800448147064686816555496407482223657655705270120881921480593972259815020346174685786439944654463184523656005694147744052303182987452325833520759400016356327806039537019136685361486386108208812515178798466088561264479088931578709600396378209616068314331255585663633193405278592922051005780201771631590695151775348566664344738123499008404764392633450653684832279466987935352454788158679987705081373535393057559123583780053294379325558256680491912572962405751577448816741614550895736902950233244007863920436606932551385015718961101281534735603093501552920214832701427991602461312789913826300473332558698958629166530519811932597048815882867537062010047063426602412932952241513660691145880119478916039632864266377355346656191192347030988430150003882362856013601084192609951820704919099544652732752761332457647931554440908310010860109446896639586751749189595653431596016831049634282709826758173742482438011690953444445804538973369173690498225172247989398319156354986358766482442656114836303975172087160263529645539049052533172094430983877261640782980331917180633229678568538013339028772327302080242709486411187271352095486860343977895313270095383788657806445348009970426377121966872886680138359749213491891573510477319981746812182072682329127937539243210830625524179802881196887118250525645099100490059435209868817191314107260099949876304306282776530254065772931300701717365776683110800004316960881986937955749160513144690446120247514513124932618468807767691903111272777160511025432557264261265045068822570561600128811003952581175735391724092769656133933698011979159086571459225935661991131434735586152553017158248652749805146529714988924705379348605018600202256895139379708515509703421556540845929454700195165471735232879573893214964063078268730648803909515452373650673419682175214387662703365302665617111571175488206330788620579355833021175128790186078143624109123730148763407290686125243004527885177450058282031134691587139136553985866827048479674717568381289015134628875961260389711822904457628327212550916154582155719177195561573136076588154112195109941962140604517416663079353554349924760905054880171825843710354569510631640934716902672443556628296452163761896777812948165042652155521048409101750802661578174684031206294042747536192606867647404429557856617599626205475998506476861498571914316607998448511960579517485325431263869518640677578312259319843433516729292689523640179526878219409915760586914243829205455923747334454723622339010824603986411930615203904102166412231144017932289362093942751596015508557090666105504128091064759449290607513264243851917637618695122238459234338685374851050716208518881214992124984715211620305798930395144942263557063751019708579852316462048245449085548355779430135142002479052601452208313575728648744755608110359595083667975757755257545529630591625559004739105309536036268536118680700335657118998932268413115322820908538737612140328769297329183506523917735756217003263055656486907304823202577212825346448363228085390020969716562890038372600256220955534054151622640114301561595687337058227037609590967433364467182396282326016426978286804974892413483469809390905236509318027657274126057288828630514446054585590646242789515746945319784845733482091064441555646811417538854511324785492489162561976178467220114280855745894333261234954037668387097262167175416626845539532165544540404218460816894649177850050504801657313810452180202759376149332367838021055632070652737709208852323506095031233838490310845143838280591166624476945630248635811386883282255455161826311966370779061938800973568788262756078231942837141888709800728110951510940209691467086285589673758324233395340813495594352922888378304771383994456062362232001618528458774547075305950215292833484225984531317040398003600399344546363248537277249528759317837276173026188487358363616853164809911890210865372943076011909351053101341874921670396037026292053124445081632176952714019332319945813641650637240777706144897668733375373922482641509141127589990438603672523980441391850531610781725358914252691513024273376113423863079076656147258228462737141620879488664325816352496710002081607731360722085800194642588745845030022552811235278392658106416350682911775309123513075242279247812289521525433906795077238779750311816664243176741081604365550233822157235995014357319567670240853829326808703788514055454293035395257670154165301616200407162851022671764668530669353155284503652953501707413300151261033182558621373218899173204472294685555672355623239871803734649508070669856431688301832148094831027716763441368415670679132723703978730282243017424988220084827821099539869554388336903334299367312580354246851325610073959917646622744196497114009338000855259805555743598298915446766415065391033931360338997411947607966605933913840637370128931286765395550970769993296316963061057781154951352272144374120257551224150236356923815662640663939385782990549366576482967362942567017997825247864930569958889344157367388128731689818167243949269141335567278165702100352453961311473676271595605348589880231790813347846691526840813622988227826726920578213716985207375365388064569509376470519251856168688660039836048569310270389955385738647210201883878546506252437226167263033066707871134802921252448599803183128931488562995004366830899264957277864059714254567679986856426779404505933993462560294234669395597991393484238334838586974838469225046096601569311494538440737409238497881210106918004067795285705434769678233269300774608879005010486171740537748639804034461701131682694829067099620480953432709231534347687202600035212123924624312084118941409955377387654822313755652802513620074902005131042925461467967379037230700230788308719962874016347913934669469964567953987838484331521134980612164579734564047715425620076145574075247368823113080725362758174102611262431788566482048010859710303289002977892447725137929574335757396174617019157647386582423481743348664752333310608013758129281769797619301253776513076317947646862184464943627245386275893814248875597416539747784215786904228247032310850782306625012915205486686912401272238068118556711359415261188592379712823627161103291134439657844207793996293560852066067698996369817822629305739195630581785449082421199123925365919856865082378471722467515990367926028436709371641810536024586222464655304489635598181585314054702059592793907016335061093355275460178383989757899566425298375693174314829948801938876245344899251810540915209453602239378028449213221675560468605589419807977292463286073685985421809004557893166031575180163123545756591200707337632542100443731902530630524866313066563552146493079336110720038517138437269986539417279520566565970405078905827824213154378339383234614493176449265049638685990809145600984634578779799320225636567766077367166973678694628078312929545453455611866345236460313162388614710127575296972174330762873750966747044014921329347377576208488994050585308682479546075066031175891292324092862265651697907750859468537458106366263357052355557105745242834538336204668742174596842418604753012605306063284511478887666040103677456749907414543539773221896319252735334193189072334179032374917789877750074091949455747684441583859030190900168014561915236452876206340359931058366919504534028921960675182661101939395349076812481244366443296290971630627413216566391744820398668098836539739245480198314557692650640226080463801793042262556334435434543502638642283428757738694594788065653022966632109341179526427438620998619829608319785869380009096642463341650436810604739708029585060793232800517406265081943523502607380080719733763561127564604904665572008215177882953727000023017834661697232190733983859038103776361562696840669267466702317495023527849777265005556692726874493763813139053041159468457572282263600216455462932763759448428899049504150431378289299248371405734986280670804103130630315123627375464119000320543497068207091861451769036835615692863049042200412714852250013192140984143603860420081427649007832342780891590195747576691842815528092977187253724163807133304443916648198401343806918144612252226107195813199817751577541464270226925365149140161894163889213019556000722677308555581909820377702273993303271411087714665084629266978196109384871914594321566040567697368927712072210836366418906801823083268402276813156201025251813643518811015259543967295056832301196538031475213619848122267270974054956328765936314667714521985857566845584045023397493560295651806123616304464458785510295339321027468594393772817477383405913158567631711958903488364908141660699701889736312985542011542375382545574762149676852535730640909315811174261116882946082391899471475352362243871120536537936293287924067306122368246563445162068701188441890352231841804831921444135198207949623602582294477062397505410154272405488960127332753596256792802406233801337848012162249174428941225174250139582187248981150739591240861682229956282924831026235150454811176596238907988614647243455605308648344307637591147292208029996776315567394501537791296831133292792757186369000729544899238180425226156871678686435771211734437544175860223427521709544085034345413461506886789288088822967977919950157556078119783740243522330938629665072205220367025061770274775090570729633360770180733249183245934474561498988926117501251373352565855015531899748697483540762290874232184961818517117528933164878619113421565585701826054847445825475133300565868823628589104184797710180902563251661906016494919728915475737097663141666484322598108752636773721954097819761368567748061449399376432325243895655038031527163359838098382444783820335447322794516231827420882342842254250448355729335690266629273560341816900842374078151998977056069365502525120400557843360310527703365971807930368469728935820877566944908279247702531683350489181413015732649025448272034573933136934714228329043993538066055533813462930420788839614352845660786043629135779566155220301206235913110632240469352359019814039743427834424130595692081980246783874100631953326536687861182803797488095438796282445312636806943240873043942244945568377599689063565105577476820982459596472075960629022646783743576117233836904281283476764291815630004061079047217187042634279164743645302138213197663975672867223852663389474019989243433578786730482866698803162559623980517628126720718796940390627035027385963638315008229176299664112337518715123779602721639771071695690114703258351427838009778697459567653504038590636164034207640431372318568487824341365908649437111071665736530441913614195317260313918711844770015509049623799528081974832661132067647767716297804566326484466303755361725427926091444890255619492153612236815214093403149688430689020561633611377964096445844304803455109535304366067466223452371037346616315754773090569411455266688439306832394603529361617735129732790646106733433066387435613484700196116978541338970494485140736676393315522772978407184828592301751768059237429672283021052160316161797721108797547043069581353099775883044738865435683290173981781752963207936646573653065737013954001810343261627286319541720714853077419217408144491257814816646119666289745879103276919764888804652572190213496902040282300387906104677574825081250425338867912742207471690092621694729888511648736027653127458675477902511083955077613174202916963226429139509076729165467580135550008393076952763631318806289129625620008363660717028271143164684302658731282480616478316787106163765418753733062675092564944682489041025882919621338296560779892949387822406829778399572658002038006883775138643390392571805561918132185351372483440898240374493826137002338311667291973250567409737256732860021328283602250839489559302644273083188328215903319583766667501241189203660600105053622860263261747861728564449803752677835399495350625734472081439444609917512934721903405849490118281916343936152351820607324934197616478749313513535837738794581018776565262034908094052854745219128969742681440653096591308454796754032588743343954765612325878597804918291675900770214722352187280576854957257856199068482314517806938958372881912527222936430861867343557913347587796419093832583045673058162485771593254417576925773249477542100817027361496364857105012230334723649759133509908403361764598966635167217783962441273153618062705431979794689741877544606402100292656909335778909903059180007158905461433608805611418007943084435029507357939961778684330538738572694374972391603095484879412883875456529214452133541951279290548680616641785248968516096970606947318229917536912995783232224009322880267319566629856980392582220890132333424295367668756992406973747916119487880801647275323741233116545496066798279814222377289628773937766189950442096249788619231784139520546226958366660881786019104209325006390244637755520699687219799071185630469593712528078624885044115988683171698085571347328584687272093831602750801192854637152031965701329516679822540520219233530710411203596817419388703260847596359472938627531483281170499694214372480537687473916626337188649952025053845070194755057506203642837825592738762908431443776638133358442350194405788361771011502425699809263715371364975847958033708200938217750434042964955949526918937777974918529526233286034712427898624121471071295234980983958161358802596805742308990887775988708804946113052179306241591863414631166599579971465496185249790973184343016741856038023840388399471535277496845073034375898613365227325323149994905848102846636882719136386501065859701472215520929551568844992190775113018475010832684744829157168103407575612656185567951069427610306762449881781715715466844842354172114714107589027953446943565285618434533788873451395740314461613961475877947208565836224868847628822375456601850916633465920231186578208175826331854522078876878312052264517040573002974877165135552554540005187005319620126477412660459124707278788591313901944963313515849533029226639639108900861887314335131611573433451101485643688463912810681253204237185749253843460841950665469902867953820281766075874275982130807358713766912479325105434426885503635850093935242576214511539311947027156527952061473927026583974259331290923056274917627541023880236828650584569092304101141616771461514807129448671551309532523745192149299522526712792139110711914576587622109278931184598360123882201384441807311497951160460690497058611345614643020836125485299266288497331559570569369150748747710121307432898556250146069972694168201490625332356477149283546721576733279422863564234581021823014917131173581671946943777197792911378797478312163745101111744579091705537802448255687312597473788895638287563896465210631560835246740478688572743366509548683948801302967461411290592535238219012033215569897050685284884406422102044540097419463219402946964155674297685461448305772833240940863446879919159768428220058242736605346101830386367138875303186776559501042216386267569292532009388851545357709868146301473144045617131571695973171161908878135409931405745784350261818537006007753945710652124348565265440771931398276930380519925774882997144397716735371354979377861161754381391670734817743313036081578659832159878095639932443597709373548277355033146666098471427945745150488368896487112867901836863913266616739367043193014235620485700136185617157487496706648446499976734177372121363361518242657983386923763103230815695863426736157921401235077614579852929606979734574967401897680420866868679851413614116138616044588718802294194888902299211769370460046556045376989076095978115699282467950136778062757744229886798111231253605765783633937067973576433766402936257691218841806766058498342085886889893740786504861654131681996903426493993341419165418234264229109266106548785453913636568629551111541069916264022304544801874587181109938451361489892963104033971473855577395600125776316074617083867124525701190338207341403366368897873445414099597833855504733725151663734503462569557271444558002644299207825193229771209470581200005470618330016927269686487798955579070969068584778421157068464486461289028894223943286461287945049791600668210482540600773611492812059555530593388863113772167288227582193492302174480832457932895491023091865291559355250216377838937936648500110392781748947498215764649093344325058503927102304770889324675354157283661370234858926793002588505519620809211751511730538873454876694660715956460787870705346895077807579758301074988513719603962219301980425158626729225148143432184761755916651742997480527650430381838277313294929458818381933610701940751161026561516804918484485136918431579675842543692411935335406391386173693235277829682426724485116112399904038969241393522242621948075038402187815557426822032461733413655036572862643541810965776419531089610105791044433064023355554472169389205893249474715698254723494989728297360257851649416695504029998894162894111213418223960749077566894129585102631893880773508082508439732442552507918965180682011172546240202454115943225272472219028193873546050365469469557137306371511291928158490158548925841307628258800045539879405773811103990802473206618528492192841686307737578455595659052175916094213801276752695789620160159722366071530182194524816639711883492637967545497479332919530399212569621311799601191939751960248844064298385865977908820466768100705219636403426227283018250807920112298218332039215257620646463347135955507376527206768858240850593718062971678202929213548003718310119894482834539777480347681338766927691744891168047792320677915809206357701921851616776114678315275936840069601932771604626570431172138037653531455044521193323818792462325976922842559399272899794321067306299199127461069948256510294297807065972411995308534147591404651111404953848662516588716352012206955415238902981346193910557425832983432374735231685351602945080599820928302382300140516154714601074576794030119780039159801368767795862739721619662803210027562197400818401515652496900413928059827737288844756220553167976945378845319636853145017810678064265109524100722303434651593413900107469301964037368038696356319181372873843363407155877302856395204547119316787991581345305143218713130327581342083480848659784524633247485021629592277533878213118923282255400960106240087166371008257647094871457634845286568791598400071401467433150023360897821083129820935563017047856275563416010297073288382110565221775776269856956712245770061205943240542973203718410871968204469994740746424731438898019101438509350051818720334763707231883736910673418434134525634395397467611378816128422286409434474677308536452183390024175655147541049398240970926705816421228615252499385920302374833796971950649566538432296625203146515158240714965958744811352981781571888990121751584332035880430426780760536590074065149155676083190955879174900041321602443537627078378776521917798692885838151135970100109736036943843437051500147191828165367221736684156823110496383828412673716071977486901213200817833094120838691235287572017249633332227079838231260178486682466375655817282968191240496520366491631063194739979398886997165578927889353897574543262936345146749341979583345074937556880503505879492830456927578419918047435307902892845295063936787915503474920498450559368549057588400144023961651000356615148871763883596229283491598561057018984500734113594881758520692115129566807211416016426049433022441330472230453091368015517821213400995268527206154644168919013439658950419615155373508672440189368379509951047106079988153159718704307729130003242014287819641406304699659508920433133531775646614443420949396135127468448180843040365061612016369353086283676202843443473450079288831155630934733119332974875555835161988337157127046569165188666680495179556569820266107681712271960762705123530296740093503125539799356320772538315939176170778265266252493548873519147530136951998141521006239824481643930149842647196138118511106464460599950827759994476849042545702601926738528037841020750245663350513283090643108071945440275261770123027591204931470070097642457619881560107444851293188878908082269899516302314098648439583654253880949886056584724304345808578800177164418844591269849756103248511283174790305401189842572075820969609993534701348534288800132016168833865968447916737101751294652500526576311983757239499925858943777968051887499952984878633629135522059300444209788581584199435473854705831317668957182583772300419447083330825172209248787700149715403391945045798229424738089897731108981651956641836463357659144561808800912147018318727844279879451167121084811225138193449476476970481150167528598021544164614406919753541725549946100682447843288610219749506936703806369444439708750143000716349130655268315195210525925542779414587236417729428917434518945809005920942458226197611545204854922979530636327697371763172080253828286312008889062386600363896045861180871789815441679320633596177562020669718082947276322557887632252332547042731998958181228541421806765570663145696356684236813323380446386085513588278220346276050112928297080737859600266131926942446003016724369342926031811764630632353446285854341146471352276015004972875709125872962565238311822500100819727282035474337194744141225458290682840145900846922296582470997357522552633564413698715725505805229198916642293141124228100969899208674284551212975540372591588827105277638003013004125313394139818144558556090288767096467997524017908466789837658144506257439071534769393816408966533178871470581430695274981923520157555708288268891326811299014254416593133612564374115179781752566783779961527958127827038991184869328081461855521466897495608457074964781416278778139629107763279393407702281537784579416972055800081212241033660692192075759702047018882331322758367248021256560420475953993180806750405327511164980367227450219657168034288919012090285121996560180395613417312694754884718768388533038177892921167025399243514464607701326230863136831916114049360018719858423811941240886381090467557689817914503538984153287227354667011561889368493542185566092074865188258450593431311232963782405612849293407203963390922120250304045701279826169744045845824217596454298193951493397784579877891235086041730143364687719756325619493147241604890576760654677974895065604660136645477826780150695528453836202821448009536409238745468860737097161540358115546782975103933103924394095592937022014741979784420231924497066269096143500732248819657373148357615629955273761670245236472704872515841389750920770894234678617309742978606342273418117943836864926068635173418538401424683501567114475412309490492322317068241015239560817412534854593886235080525662285897077146281878908838833436313187583860943425178578175395158659137783101070419802846365142095803981718629545745942224623066591091865107914710409258964872789062288262434342659936606745600138479525343504624764460717311521674865481601135312027825136203099044547312800536474705753205043542047745955515954187363354664323144340832780921984539186964611116916785729245237378920848077789832025479643424775363968090478664184599308331964298677497024661691631657586419126242347567737538330485162158034483247895139417041140011137440406132387049043587031403210291374759677972995819544518597261463949660456260509122727590436664602996894144202876445998599557787113955352273906005363005650511118330225556726749131636433004612698812304451946198562439733356036432472572695210468939097622259881658345287657242442306319109473352651141212235051432742321214212013700480643475929844115534049529478624662336728218161135534162398047284764220308770103226595774074668549557328840349662548741646725482966617936351719445945558454639754536667825583826463795775939314782648583449491633807066024799499758460946561240673731468561379360322433945010506772562216127087832178274008996522104239837286489899455387405887632288251249310764668366944562058014899328265820966972120736200994286530377720822486459461020807142773643528529266727573828949729596492500096524530055585351809290537997098076985553336229790782342156269611082065462790002915311451000646974413782577629696188502311046446008767122773135025694011338205482647726227807576098592953528919464280544611273766394490094392215187584484932339491874723413554462165334286324363587014974052991837470675002548848270906321452711490702976705220245393350697738357697228581823079084219260475188930827727243110448228752217573954455722479206265641237815604889737046336307292389763010824265766470188879162755888572494238244236077750541751421463387061059110374589648613616723512240408364080262044125425796327227092125401811248779840134666237926083060741752917114796291132011346336319910870727764186971493014110912206652621163051503627475362755191517397248163461064348649005246423890164749122689445748797421772267673813506509553219414534591615706917014123166493785532263601539533264435859750307321185399028207715140698276476867297145274906192958448233260113268625718306380018237508242452766710825129179552914189521949195876889296597379010513433912268349891772111832512091965808372906493759629563467489567964976259127479626539778000662562865570628870240408626021823342734400136416918179498417862271709015388497773809925716944871938244646891572482708038033617647119323193057086256941005938852064143193530644980448028776176722522490243795653874277684126681750005064036035424534485525015531316658583600099406854001792246368547609878440527569276826492628337332039462737254060810998720920947085032605116177933454362639728266531209061909826403480637699635209772013971594525011143508609523942662830444003160351156137440259501679115442562340326823520569860496598324962905447329474675616790258894561354159464618309689993899067775139775492835046234733821442190832462685132738858955225006676816750068130980792200055722646321551223476050314503251009270474931403509298727241838931764342698862067049946577601561516452364660986384688150482060189884783106057325718467869204208400436671430154448594371083568877392486009474927669919170094829326150210329311692084586018399003962355239906483072111433966197945232584653698378510528914553827447301004239947822922813821444448123497225174341661646482857544795408429049413748007189970602018802432884463518756162619493599857079962221358598098456788073190754315575900456145914935712027606528652674114547557863333695991704199029163299813782576035720818686702959026877039080193291501290449008444389082515437323981148573976593273191823253223499519676582182208459583993466748612660640221641325806615402016259835436607665266102214451247596365454783545269741872958986712282519185187399803380227364650087990446584232391697564023320901148597586178359382390151206560192947632458858080468624124864967787496963090701129007671725697883164252354216361366839327013793861091239323014914895017332977056550087219098129192788126905699529965248608610667963136655626844008574859312508552873929638839707602413715930835426167145964816198042187717239248044885759963120632410415893851396727384411748109496600948723049152635793194123094076526852367595385312335684735904990692283257251276417514500828349689517472490689095700859926170355434533877588278529532494632774573565890177920319801455768079101244832054378526709564885189363422689383423475650976509437301415483886082695267047147171859316822689013995717342985285899016791232639806355379371952374514991743413441856502378970152016786417456080759888876937171428254524642018862250171498401878889501738232527608394973377940893820253536548807435701579132645315233745694341937364521872430130733368872406907331662046212520770984306105248166690829004319239849842946737405574255761677016776881990893440418210652815142932973750671114453626165793586587078752839530260998209376236890780002662899819060626406186151621578872425472858170202911756021202223275546328688417310028810088442121645201856397271883521339471047421183370584292196618585431838939601129924504754504898027116725629872480365919244287095957325038062073846467081869566821184309842003863896678541777527871557300929893591105523528884277885163750857466969261871537759456781793237599765631932394153753056207912483085696268486635629832295127580042175412185403401488813667558433081764009502243110549436178189508721379476508419125013116930928802820195951853703118815465981048516072318358585560310986926226897327842197110578176372707611935791749567669666370044135099822283877252443225919417528911121260787425772161339885774872396802343029329240218925243084768369829654572032706876769564020692386473358398777154291184440329243230252691804794628802759112509476416264141670561751747014335118764116442871848202689843368470348846507152351412662672395761781951545061885118442112365862245282143820313535267439335806970740168236277512132173990314546226165617353892093250138554683305739056494419558819586497722444316850735392105752529488158198832209007539336762422944400091651958390075149695148535346318035416205969905409711154308965382024698818668509470781702566388100397470567802677173956775889422115823776943763270757987329072074199699829923277116231180637419185119888393947181906292497180252846736316465520539944965060719365741736315613783845419065324039794383356070900571967779677948396408955130350651695738912154450169701078307494642160267658656937148759194605804013418784365508885336734906314890733784444106747588324730950708532640010819928530765092939166519512156142995161073521125623629249602663491488386977644732807030848049062509895800372490091388464805764146781058420570090682727481280946571956528549411517721572213230959136617358310080426763852762692663959095339573724821557914183208836049430506406418870623216372045935063224843638589614095071235004340635480580670284800646855850119749063942377551099721631992935059099503727294921275834172380787387441094858004869028607997857262935800317767160566624747350687925033428533056171682168495624386751322370355996805679280712198254854578037206421169844650186433572501648764857530720162485362211981081546401511490272550050138279323712837204555785618985949743304955018150764248774942000044081784723318410316635900361408429717564976446637440741310039616283722510741976733645431660780942723408865758174680547875090056260325315522080716766609648243797498756236760493495041939393592495503297430240816951728918274053160280020178231325090871048274860975407310232869783645711621052103521601142816633736759804000371385309737738026268802293027091735693164204472729025696307063646885875351191392338468187963881038479151076686735077641477267964667902473855699074376307003852525065273007665398326836292756147232791590535059037616351370438495490720676478403455385395368265288808773769033332120507002470662047223382434243115231898217765747880283245723313223877905001474259142734446370176116562229667169271232571914469012088690529797424575335251023506432104870772361486834801931730964931726891474716418542954128551232042113988782768519185744295727611674719697650930997526787109048723064747333172391235878265207491983603533306310417366348280740726083306293182317907420208669917378016588318681560569977876049186037489132681654842273001020719068734041215717561208395234811897520804730104863394895262287690335694737262309575236100532551591004892107265161446935374060746240813010710973191988754227671164028447485695762166919636943824847608728408073778200369916791635084103434762646038151115075023664784633091113196380431293420676710336574910558473481466694431505502683499454350163545134310868467984188818994300444412569748350405417192077708963000074537977053197178830269416042635343152343097870031833884745197026231487349421293027090956105471908114123584694751781587169703540878013444568384122304083870653458369535798161009163217208271103425183315127974651761100871750467594219502880536878497754352516046269119124773310564674700688121883948607950323010329258477362697971496395212846084164204102369796116410445513301529803990464551018974198407714604815134293737528816297926929036450512301771436979790422466965843061715918054611094028131892438418832620965007086527268476548718548879612037355379371557739649075418885508932908823680987454731569419897926547931878465595360975380700355266780728934890947323457266899811438429023783067289000262558363124026809377790430949390771229729280008065017243084824973228367614486209782304863503534726414049657502473696562434534090503607316824460429004456508374951802820989520644278531122466700982529480699982161021290221681593060304830144636408013688838361718425104641971763809700480922986183483004976377291066612996047877849417307334832524389293551168039542642932697966467506238390871773229242449549720145060133106287562335236449281726765491681544755903063028463514097607203163146185104713742597754453773259139135165124775832985887082107763288301393528023002307392097933005540015778024854547827383205886979671703796100828277119246074868761347443961398785229323133455995599840749240512087201416157109178156022538101285712354670192337220458678427217822355753200527456077448032215248357143997776080570878549156988200862908343552898228335737096208041053497931343493421671132980192425246709812523231022558279172183316325102161144198305562208784056074526304994252083640738011404860261712013357917413323342831288218988365726084768248273319276021180535751018386222911889214988103780291050656578592302910446526154242169539991824427923815335242996135366815298430491605133794050937829241522189441997971999525323725326353821189179345842236126443854243037042646066437849805843776715094196065508974227759032435355044555778983357065205415061115967860454655657800686651670943152777073921144640113531864909997611245037734884667198466219134923169274700549161549042475435461274040073315444829663197685321207240724965321523190731011814286419358194746076529439709982291553946980318775412304779809350697538642762483794296609387852530863371696136709765903442933683182672815897216279836741894046756740441299976155127860879035321681274736964659694839784854946563929847454861955408764553359745209260878776950463751682926808898946288319686119574339712843934808490706767118915537797278539349700486228632067780865481301786319168739829489970757398489621647946044377269386737819815775301058000086438792797244114409007305422377519606280387056617675403352304352620607389984984709053580247877576869143587071559637966897221020962213726228829548374331896202266223812893608601340612892511304928985176866695109679394283964573173768581158081351981662232106547654970093771997722602045852130487845159497316257778773991375832718737496697944509781371231158947498976216028878474206548194737022846098254932017945767617831837043151488978301921573379733661664548625109716396505466033073063704591349646708754270999234559122692944220620814948316510636614726936221260517695302052187996696458708947609275498014791924870730328810209836920604371328926968574840854604707520146807904668303366534808779089313134483087863477748398455812248321248448728222885387598957950612712850072978121771223493019011330838160128008230157344558977607415688377735553426164801750207389571434818481934297258270943984007626014953185398872585222903634473764902027603607478376034376283719424952894470620639924303984807829771279294781181499390257015476268736111630733540315163452067835511573022492534719438635152849944517551767374611529052849868567494997815278838495182232189329684538793125965134011288114274399101052472171370428099293226575602964713114497028794247345793871309440440376588363265369005175766297229484304647310693564247131610863414487960746812017115044588260969580399814158964072788351449836697282650109421665145159504372929257894956648281002586538056937513677439047397655080008705256775244525919887615705110486994484514372075244350741889117409637840468551343788684004298882318260313147772739111808271061480338504878953190925832745850588309117776300445292823013833666274718622573323537296571942942626257291958022326903464530482780588485468248665938582169109076731356196320197843899873036053266247823945341075287894105928503513148771017609979758959890360931543424441133216863617106301060500742125746502869108647254366824165828126387011479100596460793611228520505867200816504849148002527898397482521576561657476618187362660468751276907542925027026208361219349209284809228828798842161062423460764969481557890770719461675749062584487787620511378883343901288961606361341493039508856939898409446764300458920373413549008435359461560190384561492006698985961968771238606885794135258225875291847930106055537990028655564412545662638848999304407580817971468314770867096560524453739117077245984971209657736203027657870911599605680020650860755838840023694394461825318503635753384982199630475856434230173223648930662442096169797749890368687518830503831453871373196963657262255068990476223596118393389827258708964314359272202983489817614296657391538461977927345571661532108877920245948685039439641667880498884757553396162142555185307661299966371428034278495100050390495735689187620315104558319500634461839583962663451957739497889460560754415195176065788464163144091979080082648598618287799821475433959706050024870837904035670146332175805780627416001005609861178357423996544529278225594915872122770237785812132898951608194721726178407957094717340285473951803567961515411290248869390611446386061435447259463489780518124994102609164943127193042924230322932680342495769246856864434951559899202020357243945357323577233033854880393446084936689075482433174446686210104402110885785060981214781089433692524269511313901230040074634670271991649748277184436610643398369605393051074571069281240031621024888128009432975792875600029441365218524754902741842404847459126381405023150163017708068709059029033081891440199524588541144361615139686159277543582177908699564980248171585896558505526263222972382152106020797872074687517661638789547185099996623673943982554480459572176948176180930000619957475913530336698345125102960718129070318994090512106473294015157012822612550699108642265317154195094201535605363070309766969944286838201807118040357094018632906583913112541183041698931528233367102071905464339895855197449810107481101051144469359224281113617821165149787172424430279089169301669440243359647427094818669298944809875416861567133657958526512224317793490779676996052565214785053301192791989687890844832660116560233117858832530990645285812263901283989697446120407763357620139555628116390954636412354664374844254089686294812883351497304061733516007779064763915015522551746341957156818192183784464373037933492263958603759398201904290510705462982347060866322499879529300734773557279192177103749432025852453706744474783567230949041286704422498389178841449949809145400502652749919104341390830433505614059251451288853863497340870455192460203371539390791579768432771444098197740968234480607925245321655656171562459279170214704250301184239502032893470946907547110118528995582189366715320685741962696327710115957535286249282555125588502873273783636422885895562165113838994030721359831918492083202769862017233754787996883986172036345355916512684293289321320170759252240955264692440361129247428414586615882862595703567670911711594750414823499887367007879362916752181749965092085575956398289083028845637644937170604530294379058419772180018742792226355232138103342774779650128931995620923975764340724356511684006168610842982710402513200457260298781606396131939542883732228658790811271350689144020259512757874198306526487297892503936124992725786524167170568378063960650279383932824414400266982838915618400317128753011006195721970175078856832757356257505100461746364026431848717644137802320713368673451552927417408677212714791415270315059403259135886596634732894704760311720881442261210563378148122916490753427113458538672870831941712698111526752565334137130045619733690875708467815238626548490786602208575500392144688662537857345611420629480749669250259424896266585790293451943869190757232422810564506399679897189608897973048353568824195003096716587163327500119501538949798988090880049356606369201745143084970110925266522508750677357346165977348136923896311841106695874557904836859949110200705174328354839376737268121933639963917158098016387275780593069985976521632898091203714653115646512100758239502307350427622603599980019886088080588310279203818039411772204644605183709936971756945666698064156005743067543505954321839536282800602572234950721258231586959575142417723932193766810534924437751123003826748967008328458103081233509241724820051784966273106530676443327466075529484490529216280721664205803107876543011751043930487497597494374071997610906328337672403034751580914111827639754211626507844568678170417111337521355060905274680104436421755004743786560555653755816497402581867626333109219503903540907683595673454312559160775570871012391926421734347745943837143504150310505451885649636999379402197857521019604460649511038485584152032120674254682110762576602684916370958361114325642126117834362352928104662669876260413909659938519708031285385419423823583826852513987104221183663019326754281224315556030869841390243791305146331263783463861670228948698860438002817089920863481990185808976633006603941165282050719995584743602998052862576591358522693649205046730805502342979140322435208416008186939759642968246198010638968869129420569525117923863829549722521914723774427160336031819790680484380064220615314309592706103626746243099550805456536203455584653837216351203957112102824411458991406016544652815798029831771358661114298504395924948653322820067244383390953527255666964843665346999906505031603770206174339365713649250671772393812000428665161044389380330078161528123193265687154996211175029464260600673928379575337848231032000355853411017160554751376019288948409459071546729823496851007694781389421464474076684579977957091839198629032753113572795319968741191853548378240933697308930877360150915966697175956973928188615679247391044614146435682185098312943823983370596769123328624143315842766449370814786618951951995955862430814460162229280130637119205051291857809442852616645414529665354710530646063886298653609339730728507259929637413517211185576758835426346203100667224678536582639846026993002831688501782004550457994122958178376246992693180465740400304686747896589254877610482020519676435559268811830682877380635246648420575813414502409006731351516219935111922194297390204214604810588658253639901402532928110616717841260227293685261827317753285760418764163330812306934757992461006074595112345417175789103110363256371136654713657901028432077419181710957153623969730657326893890865945281441522876225049811835306507597069354259581784699261522615499229815078862580876844628657665488689472325080741075768147796392976312766085042110313405886341331114122558478828991655771716029172010856089277508334764946697161458902856903733576624272901696597605552944045044434459693446254953005495247660691015123832864631546916030527695759943215150778922599733261463598136758960741191791506835936935862595483119876913517168264652302320696128960843777876624507026790740435729463843527056118630471550756741271566190277232628007183034443848329202459248036299102070495616633356791092178195040674307360232929551086773592689835016677498014988655086994315734220057128256710378406570923123972851562911863600473542971904297335731245955069828266631050510731090295405078576558766311146607206210251242511486932905929043646705568516857451710745711443891533583158466053344193666836943045567050266386919847496501645930906703623407588870983001104505413163279379618113766226990173459424005120523608885682944537826415450734705547326192907236956583948889199964651751984744847097069853183754018816652369282201381900870236729489354266359250294522032816405540544802303545918258818797540751437489423870088350644724751371822536448203941640260518315272510743473725126333868227462341410249848090888842603971199667811641212648445129820177957072752452833758894138626489414251363689895341062914378590594924632293101695601180376097365394687564285294862226598865129296129076625915526299222085880977098954060171861079238117862630836232460844925068146860336410912521422136848109203870599284567174321056831580809533889419689918455167257611389932610812225657768404472850048730650905626413175684873338335318329624573594330716508394082016563117261403490492553962839600469864138533148372061929980822211456276316568545797733077593052252509887027461858984511404420825991030097943650969603436259520177682341982710884983712226559991035150859164268179569906295587877285077555642795884101827001745906719700408856753216873643835858003216821420258532888344802309194184498437333018163965117850089501839556776445371719827543219678090657003299224308994161044969062020867645097101925640100712116590752924102196711852678901832979803959356369974879994570511889233959476276645838892979706228629422907998808001742491740223149847925110561812941885668647189954987756435843782502419149225900863046305007709418554937346560950318560792254294128632233172253151385770656834515978584022803697618052705383166399091277507345130627626925683247177818373270308381119696291930060236943265400980512674663421201101365757103705694950001007901687400840772271132544356362700447676666773769835221076080053653079894037222742276206924064813907134615917323916173839062237467053420267919762169435230003692317506277778457159783586322590472823537894050515612087089122243643872944284143966588985572220276631185161842052185064338360575827964645854584512152492741105234696040639775747324866609245973294477751185869364675089242173768701694617120241109617854569711460651748102545439818051932047480406471524452983268686625826324345510912518552890253432675833382404664999510456686896268310056949512718700117706673110016553626977403803325244248977378459898412847575715204589586117181491868106977743433934602088086210792127615237038255141581232200510421612726883991744102482878090908031045053765703235980866171346969622887915522059967192232011865353765308918498991878669457275432587395282442316284241229422892966760877250696387916279420036907666599891718164551501199262594845039071515211274764538382052392188429463074195872919670612582813278643535450234408316219182066433859608191416834478104059834143122917223251084597538858500612160655387506687076216002986348472205211936019809280512904650073789144588723945779079612191474420624168084238331346611383795159234755716974864124970055771877660268881432819220180028713413259708727419139091712794965021917675044711527712009581499243693388244181172703169436009415834563663180355677253514283614489532248885667982541917861066582895695196619967394674474050193502298067437359372068615656865988883271127155294745835889541332568746359120571959509819351266780268475028122744447668044703980566153387711117829487413713010712892967762628605893242649103522323451836587633565348951084346523710216552565715836126657595233943327053240579832792415985354642186849254005239806705001607927271584186350071747785986561402529712218037223484317082187930580072216921681345759279227581623458355280780397629988739099445028692411264114165092310740197917300008044704256951620363217206678261958432921417566496562611892939232229462386194723219478943417878019615959166002323957324161012170662032955150876538109075466075505112365801696038551585833933438308578553970135885282550672861799830328718218200342613989984810040319560061710474408602463839875168522232654283786202483748344912274615236811138812656866795782090238800083623240835280991018302945425036808858689497098277482017472538577991827576263848113821803449561828232920711321222541588837652946903400859454206096088625515351896818388570982319099173820884515348921810707157403792310782926831497874223022383248559611079054762369543174928660932833852684107633038332456635015470119614125772033305348272484444100153206620961686912039851574531763988687759362121457988115621480674848898357484356082225880256865651337028712218507143241868962473521640109199763647594123375317908752675140866516088715962229916449771087110657027238581019320593663794422349882431592031892465898618449308112912724387441598591216660786783081608144585216575445198729127966150884222663933480767614628053520258932284584644729373878968669213179990044621421455612619777817298229999437430215625769944136152797423439125031959495899486829676029564590024312042374219997959193581710268869456187209812961274238084910324891796989052871969992534817902010320924299332814070574058861727231427336313596156875442902588846590862403350805602586494189678791327915935938183768839839199067110614215216662249620430763563492400162208346730884150792411967324816648508401358414775961849931143007739819495971796454449884665913547530681703064674056752560337364907313364945193735599486956959243666863878169940658710545711357162409161854184500673262925582169815541664928534652822113976021150045207469209826425287648029666195160392238033319848055710498549427557018821509346769891786827604593284497399720158321387909980797707932579919350130098025388365722884802296362324421263067705102517095750718595445211906643987439534065009598456008258295053230925169782921004213301845039180982723851520946448511545021650911349924817861498511604230904824601686248943707896817695507631203080567691431180861949680168330198081880730782087951777742474539462304391470131599801166448990241654415819621407163853822512373349688710609077350494252213754538583403176154983373104852088965762963054328387337289399513092989417833715335500279460328132366482341876472695773276962339356112278282815651665833554167700275533813189042627251822292433054121297068845851062735059073385110378576773818035687297854005521242090996003607798384997376940001544781792396732398915268705698188084893998544741597046558807476499913983375443616912986118093886952670774242435109115902615900937624045641110547573733125056055430157958848653239748917438795683950820752312792361314582095411834923403183551190653944376096516367880286877782018003345757023182298072008585198379362786543194156232510532979896816367368301052088540483816557592220738367681384417751830591753833371820032145940401989942623293715900442825766660631572428569834134123188114799671609285900555511441090422331513294678753946216051155421198752456112054914319539949891835513378626930801478330792457742768119184557504703668560968596506877453876793877048848641328141726186587409198557916556457813832042401354142749468531090294772470489178793781256185216983048113173689329741018460030042333080057068100078655813783407258530126751175322969741923776894926637365683185588798476683069772082351035118273812904616548150422114478276732001713470216883762914623766517646751025182940000124266221525183697560512458807450403072405524182011988259381837602342469367513711006625958681815627537989112933773917348869882276992923175545006387198383232076135260289693973054376573829446707551758102338635549710252789227178723298806739010634191176177307873842457241701711067903535664543303187025588534037351656239165640661486746711026039981502066191082154799203881614377364133359711562220909357080240180612793059541425648858262520522896997340607126091606323374094948756036837079424726811334207658028259187505753341294266689616598285728301078924278456022842593781703860572404996008919155307866475656859833841854700228336796373979896249773083975060789959013680124249920508455972122943649714598722369518669493546324359393411546683478752436107890367594090679671955311010292714089306713087238451807503865830461148508900421742151122563672898211988640604627910171895417743054835599192172676139450669303585244779097754835270272394518459035409187734950362874320496008125644095249400223932447465612453474986101543843869977769425346636760591274800541936669646821724716607828889429045384228899523225961826334017492369859623532677781993366996184324847305226191170096868948377911351207892989508548149307993932153383551611591008458661458380117408514805243369265984274785306635206543932101878920051552060968614854449221165119711909636844249232989644750989865243185209465216608623846203687209603837247314047963437244486158870376385110480949168985806120693878558695846867306355826550186900212331926148236940686410117700156058400713355158256579017967043712435672140703694041341011534479835174815896688486922808262049228239281143272470432600925423394684473618833086002015939067788500465043959951871561696729984527998021419417207369727335448436144123288681653122063421250134529817598445720234316260375991267769098746283086517225584535002895411385007312497089665716954524952714719637669390159835704087896715663502540138410960846992928220843050994353965732923301362955970832914529590211440748114859033842404862769231524171489569017193051913622375455061650887968013437263882685702451207298288209881951238208788984441172598476953704777977786521843710622212114868443515573767935932616892205223033946187005317744808331112802591553501353453995600922554987546406100315208427287229861219922111229676172683790136784660368232598378634126745143749284149388857898435586161648612863001814713325450629081810224660226876156948591456789752222852387141212107468727312049803034317400199527799611208406482197614636612726651152049759409507417128583822809418769016694903110579124507760035310043121817475668366772735009518823374640357830885587546050177814455751460979427989047277951477744386424236136626329424104754553954228037971859358117901937695043666588610341684552528172016626604261304476927135736155569128449257804480398909249917914038790333797818070381854441968113840802192455832353348006132090726759466737560717779236763261685510052945455453496320046346550999155016167476604897985411532150321642036921148743927421285492677261516028672295208445673685470016428307825792194444047886448384070240082228965739578080149903962901863205248096335796906484862809089216230782438576807044300855271411720062001347917881335072174466013566855198905968463701536995131554560441962931827763021707252386777752576046543475512594959652198925722366376934497520700594031845334622345894697986293975789897497285319380953060364329453574124756524189192575165160089514186130982202668461039164537640149608214910251499674625051741908537907552782717063103291578616390971119104913914321004758592053245326028111907073760798169737131502769345359594663366017062221388690730724686669234636242191600965205258975776173738242742633776813536797509362826458108785426690797411521179454531066822092688419313458908078005357746255497189975058029420385409204934609828572980892619452133340267373665799204879515012018368763262444396222153632836747219237987631861407476241885286230565061744256941394175066257399449340105349937613733356082114855886984153886901614513124758259113944864011781687808186855759425102514276022515246749617001514598953229514673744151481696217913220489752753837917127620282502278781520309862786186925613005285632185641847518427199830577526569235876518823236932997565260319484429552738273111062986455259533868621562168507120032288663638452999747830470363004898930099106157323653319869050616035964145519096018993215631907108622199674247939631867444569739386829226107064673351393889370536987166646246466836096506904003130576716482596562527570592793253166897652463567078874154317461510542615471920258493664808414350420125869393779685112791373769670609283607639227389643826387963553736902989177033473384137874180667381711789193328608894625580862632034096059118414403821307320841363359530657303885141053266949628404564865093953160543605871807121439487653193247833421832468278323419407207837994742549466619795799393905418120216483026171661172403958162957523672723375934078869470889939905808391756780005392004533721225247874475597431161915354248457100372733595101570888684474199357648320601353124546915127937874744278869688461886254158336585535372321281209828624278088299894098677678292816383154312387455106352460837518099329051975649482841593221099696053766732886412660039313772031895035309883571091792153888530537693032371247705309604677631279765668655612739079686681267788215405943614716267968664176068796555822999233922217360833028548555643536689136616774971543838115080396701880585460449541332119796937702778331335146875981530174140029976302163492959997705949824067268009834928438870458549970735978124237801886636784554089288324434099195864651529379709841425950435782782041645582249253478289102710289751251445651588130376656017020936816137156283958698055920874635030218851870780682197731056334903673131646761551648860172584927984316222539399592286969791313315375915964859935826100169892590617431046696096057644976968270072266811853056691755795675084416536188956382204545018283285738426215024727631154906461048062467985700342407986474955717870751470015114488796843467288148518298750690565858226970509177029373591033358540681350363645377058204568336655781330278161224505317301130008121379131301173988253888822559849492654847819376136064791817936690667796958646047190251719051021455611390374584463640864895784244780817475653248173195802686036121319515727305081069267867360036974996354903254589081675808145242684533639240220295998282974336499491615295033276373410643588647306149165136615791781402721619838352848566165951961951629049273146018845087570565124710767256392289147877660819696098726641652465853843391290471904967872969226079196770303981962094175897678999751289669059743244749116277819199824174865963677862282847976996535834807846434648797985753876465557627442006842616416110597767457284036947835781629868565338014632295844974462239286965141113396799529515684775598152194714070411751799765077923502497600809512497782595263196255065486595934919014639317942043869592666564555548536656773163827444300004162452568304733869049909566303160991643059815906146230454949055026916333855053559130839562640700830046723837485217670388257505430019117928778605509583269212437387552134060197853890520643715323009199107063676223996592742226200791502520368961984131736382106184235971867097746507343239767508596870326992505375214469483667881227833803766161186618760823791482763080972692445179222337671789900923419286163444995645048683142158785579415719659552666132381912415605772624918710633514595614655027935067040554725989109928409215562430742512482786838322280604797498016765220206917038243543822536017485482569968750035633082547697451483460467333649137037214771695581408365575373328310886729082834440341650967741368070659450194139348965906859266707802529627298751747320327880681162791579432888510301358783860372946496210286971214961349285217245659912416274521189465034106989803037304441396375212803948575219677364554699792399820630644762463702494045596465048727656950357200023964851208400735762831937651982657455050807578171493547018208325766758875457309098007300538064003860725943479803145316602729024197688719929107581020633745019803881365977173429035625485446450411839015648694409109614574785496645983422254059537854538895250930872192907881509598891511585571947649395487851125160959846669201225238858670838712113786123800180515952188744377165525716554010807973727550362506593920122127275067004706181771280968668369528681972811777265526825803964065654175994751903565619867866533072896807410308824187120237373222238522114434878606387110062702728320965948691331147961709084059673442920371828274566328366903235721922539164256165726869283567591848953578230794987528614720901578831448994531079184597921339722125979398847142298675588356923402180915408079257316318079125848765410112756548751025120600361245455502086223226254368588093552694631215065682113487661620096439879213758553371041161963698682991458807084261682258523696262530922601047080146056757325157357043123818507671778279402500838272146582631026783211396178554925838979003002605912230889395935565297368370630094440159432400660293898188637393238937518081962569291714990999740531535749452213449803568210596538630685549652685365585582947328412617272885908501656355188337534089895641560843088000385959158563403080326373679333498732238195094481372207761412644829341329540028568549022100499132830645543675644760850542914172329008598708421373579675577846112853733459204613298056011846963890382442431336695166748578457851907211761298826314426863485739415941835356417133732799420641751050480641672407512690025768744881024767624156433925765201783711972462493679246698737354771819545196672733381768196880285134694529433697268480463203919044547740552715846629669816287260598769513584591273029373511115806127515263674733086023426984749211356150405461316839912734674614142098836453233686695317463400354562958170325572737122128940437568565993546869125625796505888017136476338802314707805780637421536180714645915138510589705017927075120664090326251307018944013733757416877513104250446435907502426507793224835323654975332143915842416954930949968179539785621703678717115337293447453625473133690782138244546104628282073021965200797682819532883020340682195974784210554170393713512835494530756672049431023605455961477645104284143962579205982996183236243660627027516814808772044308749585356909524463917198794197750380535471117908055741613774555878405133281466295470896813306914905025159149784052877857791050548447630244296938417610149709928006563789767957557021707937100612439927753495060047628476625591201835186879580959901852697125897790744314229303914079823586625090801201622211903448159926539619024370523072606749890274007311841484610239992865763115070592868108432745841397900940401083658988682872029832995498655793316776411756398421758410782100844690069428147740408192225904389048346693972422547842225680602908036429130552331345486229238447538677523814686791696841321594340471598842833324711210033677143057048324183548375983648228482832747686175138449494155119649991320127059284605216196438016451059802153733455207926085177568327414580804907096536586830475052387051356835260868319960432139649380883261317811729733105184786298662921126948166224722092646160294907512547708317369414816899583390619796217386834580750927380308540250610552603916496743522444668493733428050903024774196260173076441907380414412721567225772474397420189884568544689685259042460780360224481268932936330235433449739446332266512102480456141880775896681934544114847783265512125020450674048226825582173562849497388008431976903473950224048720358665845210824677881252495310109398574575409353920970797858774985510534564714414313850687623575675909781749802354880812346432670642422493297111636197307616832868003241694133988067027795047076703429743983921396846293771485164649106187540322436487605659675247248601185095037837693135627654782966298536262464517806841006341545921996539353577856317501286517920869212812383483763678921107582457450596491698462485917884122351396604594714286382835104227476004668396341806799343965593711464846200514780367673995687249092572153333994950236677109015915353638093626442276415956506764261001943419720959962132920601029332823970369676715627276790483044373795297559190430553000264180699592560868966448078828616810433139192961032124084441666838026027514133374591802317098994343246484253785186860946860512556814760454725672389549893611553886728292134580495784617764211487817183375726344785613636921053239727331503099219361655668334915658217186021062066158812720388632008774935402067352026914106399965440192748393815802839479508252395925992921438855991812004267803017303805276324194142250949635426272545328546972428037884229671120427947665344919680173876682335025731808695655909290156986876727663074913323571111694306484582549417623890671124841803859795971784202958641302502806017808165568479290785082441811318287093483849142992302143982976174905272444223480804647256791197168491351969925292236490046159137178006882334404622965059568888480205609670230347349605054424441340898843543045708371827858880138591830324045760784175852798370718955832344429694997322150610563750721757891058120324917946120318155251555119793759963369898751245692812540566409763893036951032576177093920495192547567067372166988169391306953106297783212399708925297098206971198535862507836551876151543026611257058093321970336458531577126222785930564780748004109271585837477230752973091562447089638229880809232693642460673083508876175893639489106527313093993462719761301425443736209845189612184460260924821139453268078970229115013876599898128760006641739395168281400412214551250871714024189126618494331515783559081877810055232035204240527827854585455678860603716085372210300437733306209229294809623595451371526848225650263016186873642646565453784547586229191999075692962313786067509206580764033767256056118529118667928479243709529819207541494220104427844716466716497486088213780769668821199813986583362599649759047878980786009634164565680493916506221906086902252956994734724566585412249674162824142142578059427994145772624999647204672525891800100125948623814406670521644890041296141968109346855433221889309595645370325303670452606883244501352890589048363910223496183298370298500821709081601865014258922849869390930027145186344924296493175958152876742545214430130006273592893267927154659903032890241632683911035650693616463315190627169472280877595256077934903392644672195429181974083763148493796474118846667856833277670640783047759258206087346431488116548555897257401879724992720263781306721311098786099487089650451194348929506197653136764810370256648575616085000559616449828461993674590154812855455688200089038655860832113842855170390886764406846999078132518102774889978902442387691617261170627151423834988224282447059402783532649892812557127989671873511930196694787940146303460020536340143159902879495411366320956717241054874598841850493668811089952182458203653957219028106093263469726673017871759184010797704742653550256301123744205306002093628339033787704462225198890049859991692305586093370995097165860910863784910846872009724323062671199392538615174610635891701300542319681514310179544315881160757940905022242197252503569508579609141250143431664577198883190710270943391593916275138443180969647298782134351677343384402747310625718578237122280556470180931894140326268618683736009309976914458946589835118403798152371381775141788672463291957541180528214727452639561487591878902001585983581371811655961032648171103365274354060504498080272163260797239971166490235596239499774297054121952101981551542484702618337632176817690439095253090521158134513655533361688538000214108749643545683545217358271143837243483134301712997722397292597778784468115015962182962268277327972668094491577947865118253571795508243305265461267363162475184036089495288624238971170306572566619005685248786057965843697304097630061785083887595131813604080997525841326772366413379882452226963538455834980364409590224603282123861409166225049549614195966571209424708178038937830181591384361488836523028396747382672591820118015521743188130926399665084446179569726692292391636834209919325118818808244203398336246736800555792454661599721253605392632275242286982450771934004851295939742722807609961625043479536631156729740530704068010137133426689513948741434564740834158934254876519737282844403321215644141361897146941083552241196861121981908717126590989123585923772056441432874547906416719249530584210847098699739640261867126284734915616094138157359988760525435550696005117461217591482257504732159608464385147694247346328005605753123439401177944875963042677588813175760914837817241593166314254102021392474175492297931719209182016604916424883359736367134653991867336970513503638388249151400242049687777132976014219942429096442395941579395779200324245281937913141036635859989353330154837592073188215370836876441905935146249610210749441719356993548201412687778673258789005274991705241369848451500475537697338939743959103568768516858052247293331024134976495117456175504394428122034069765494267461943607751180510719824054936389645156814590672194002766081042923295002757596632126358498367926091932344751491230013282270486898109300953096867388641046281732877544412977518557620153120866074998797059459320326465610558777350583019365132033773592264261307606263005856821907900929647110289239148390400080136384172136652338115331501483041856613270672322935879314351131168167545770649937980601611640817773774172900086968246081541051165349445960071924678342318685966860444060043276100533442404185769346494362212713543128841014272234619097378139363032387311967661842901165399213722420978207076930074156038214444877764200419318786038751162997936109054194050825234517660817812809669304950320390774914350730314313076873154317243028706677930893699955107308959395243110958182637301602752088726034293169598016522999708514646460075060423285714786256045569686911534375895163165534384567574862186268558998086041061882984306379223330140481937145553814757901708760339680970643004167724138581462601517388918882407775297098005694770035115729647861206605421383870215086006540255226504642914342664476743709633440039455094110125508516943708890080604945876072305275379620747671779970672873390286378666260177915843525257862366086834093632501728137349568377976894346775520233595861439081940848407196872420542292439271395017486490223963788729042346764163015950307130333386848102237967994716534608566785256882505148215842940920010211440452664029725301700919177457146838219863910259041351870888166525234426716002972354923195523126769465630932455499037753565433395358091784112153890299679640955131980283787480850916039585933418806987736203100498471733209251466782219344018214648045131637064768895889199452198611831585298040511804082638999418817721128091180112945280445950803021990422232506090500805854873347941362603490066665150236809961368875271014397486876327616001359776868901285135352221820213772604603823639343577278931365694908412122873075077752567082668524716162580045779305378088236544217935520069125383457459424025265220124939828574456690811606523106000102346203219932287504263145856581877824091114581133061366942738500337528657253111540208933906053639213923305164155278120861636473094744005130046273560809120039937015698207222511816208639659731018460060299140226664019545721979185689438466112648548839885445124525155592564408265357659953130490472971645745233941267986766070313906961763663283402007681014212102834353839229515929618807899090626833655009624737408673082351226786544054799805838748552031990843487697673706422377733709651721529884728994416701414434936655569682723589059168921160383647492311118833537536084065315789526425704374810297379108140073701230907662408492253915000605955925801184137076118998632017938239775201290043250473463159516940990617286527348058539201360716861383973620416938040329131754331473739321217382580831572354701923720420710939400383031319131808846529416617831724464671656858230807309461624266757968119717169873533933071387814295145312283057262528761560298089240213925203215032184242577823692688663476284819509966594634228229745486412697737556621894279054517235930025369731611775123130000960213356935255176160732552002734025993892769713850644208069495751387378677448383034792968665721753397044527918235835552439024480315558104975954634011547936499981425519932467638709224894920628961561087616651786718315378120846706461717227863222469271691231743020823830870565004943710601835782127132280963980853169173466497123809647346487903969978640173686961888903043010359968540915240148151509828123089393309438007199157020236206993031999425279510322701164700752318730282539862223538153822615121906741123833995645032887729829709772745281511172999035100272057891736008821570468878498767288412511730259211677339970518942596729529874615630105556497745929451935151882526719960414395079647751384340725203663964696860783356246667409976885852370207166769625005656804167853841091188325871678199889110816364937535173210354312060306075542260563839965787706199778812417197303022893412309621156246541734423440508021796203162338521019519034142189385217812848456847680666036508567325690816836106009900393935546291383716019266443536717696221583586704263792983999058113496004757964493843305733359486508053299883530359353089769357985234658897196296228490681097041218129281286929125930497289688622997775766478336619834361210919790328010624499291330188239261062028850961213507624858424817258094714083538952669750665027938106842496809505457203764912118878173044426157752784540289735091680680985940366788898276130963245009613900355558131599879138821897421365431555853871758412428145097985087437600847035674036621499370728471653848887543847816214040355245410029296136800263758751975433351540435882377369173855613034900809715293472494431015561657945040696232730810654437255439250986461029669231338647180270480476995759930599018553927099335479876313893269704348067483697271542173698726923512793926352106410939482745946150981022540117222777647631396605527225817811857388160570076609789236112210616971113921823889732656952111088593144087919588987114914475512697178797865602501370336691198951886539664835088798306673887485396712004941193063884671676886602805240403968604381404115619492447881779933408787948027985195036166302009474191250783628319860313655886960125316574745686270502248819753858942347924736678138116868928955086626394639521084173722560375059735513590304763057073891925853867878523558026252547150501378681171725361797392392297012769084069777009187733704084339373862003293655481963091839524338568802774893586797443338181635738983900583471605193082802866890549251325929637564857209155602709312663546059345668877411856082663057474711808350414800820275800389567366403924401703357674523013750999875555361095747094398947473526837463242256269529355536244213087744898395531597698961300754294681452212351753020466738728415653550410463345853406957457405620427123681828972810929997771507305380899726011972582832876322127774292828905581355128815250591166351675115937338293943010923338913058080454953608181236261677983345157365741874502557103792879371837288598676969443015248563764659549178847262703718015347411460431016961807860967342213517512681497366905917263053163951075122247375522349390276598910533475298993756674536193812564934828795416257259152446622261377994469486813914655922229109417575897502964597642506695380695181457048472037182719834063310110509748078144630541794123851021059735184151988861169724869148778291825571384438528087250906250602333849624279945781398131512961054704191906608989005501363033090900717410795232524364369469107589257096324217996611563996287943994854001098892375142815362908528494582080733207459398820157448254943824336129535827017674002251209208476257425901253503788358410580716682904185919719798384684196365800013777661257155421168531057284164636084371507799674699375736465087798360029556444499091977820555489890443910239111864952278306312351194665765385199294267025267726407496408311146151210486858138640340996078979556875170591851997308618943753285646628963099710189362027228860097188672125190199026155908278205228510091080924362936694339163404627639951377483053549710862109821741247694400467256349246587640324012217560369710027590849916616633003972947881485600150747084835200110169181524621523362356160708866041398509376007325701650584889131419609275614695983125012737993504498001055881878677382186957043816586879251980314337570352783233707706368037388212660411834120012384524318938255257777388757027070402552575357435460665537121503491077430343887472700745239143628971672033528819085428731698804300395475322581464879812468160824583704115647815178750146971768243355539108245472917919271561579687323619026149326918552678042605376938202633861718655804423702836093614218270428984432306606551744849793681764428132315294518643206279018594119899393099855666462022095759551151904421166976095366545543413215350168709261930047029742743585477913957454666351607027939985699485382017023617911784511328415681283740421638547127033638935384581615764142965372769953801316324580566139399650890608865324203951548543840045114741591735115582003754073767760716419064606825160071099010372817601314612928259715293041062003021499576764841753263559386670563834028666127623493349264699680199030202926965897395171287241510776482796407006838845946372304192701865428793419906319568873621681258608080162269492892632637599151470001177291220148658056998285078156092049960131919036770651897939662538289038172184650860401064475710976526396412507108417078212408359751984523182599443304582699033142073972301921920954833461599028566559904257568690627010026024917944840548927170285065491996413094017220084509317300897504638653294203640987111116856129169406195529706863489057835792871356518748720706361487794033966970090685188829329184969412310443177325189102479245394464919999008827236043127376403946144910832925433439484733169037458994400946154882768440362308337334178016032454101068158107536827949492752464007612303372028520713024386628294289397828996358222587065475448976409728713869181936171227603564284621521401347165886422674005399283443597456974048196242882596425496216197775298933954286559306518227778899166009787057774716652248382257536660244200147983991065293998744761243446352842835217328420007052657540060545062979209086230194912114511568709000199830365942803050530283895802336154537062652392352879380785734020319102139666110374574052998305191287052704192854012611894915060997198066592083171483721614382802891104675509621470942000313465841767944371885669674122106154029902206155017850738081339502585921793376131571245178742575267450857976046988056514336715169530299212510383114951421431917479280385068055501414631886550446589516637113807560202521918808385944912040391469582319383418452292608505784240061420587474481041556373699968662705348393603903310285711484939833796262283759602786698945736576164885546382908326749550056361129646552156934409093118305533041027563480246855508113768077439779121127813252490412362528649222373046685702014532604560394501040939183961966395529438105258531068732023217521271609426040257193370887234187341913902523116239807773004069569479463173031170545270641740954395335963566875634155598348537229984485601872857583183599953899642620410710470562346620004266270688310798038601084331244052519717041123277496555796162254125807200406528311573483354658602091206205247533945580608631398346040344458981872492394391557983303784739675996378505767444575516024318002171740101410031976821455429846655661376498053293019572342818051608788419994438549710180795118349440707851051173452656846557044355266477835192120889055958592816706090301268996146475469106580565286011244063549649553122892171798213116071325033874435981506878286656869871156042196916842956510578658172314031585595451422458908588030455524492971058353628436948657407917761520158572405171108637814123951013383559968751327705686630566804062951417239406094824161934117115857449005365176698176948712092542438085556817558898531108281809666726712970990771895726331155596338339961457347825199184431255510447947044090166545596737482581453336716770989458083663416697073287737549360937882546118489016049974826966245190326940550918819001865671040450001164547815883326079736718847207417135613637341030388003870098716601497929888309604231514269268745950202917692638638323028198984981012324269011743621769849616786824532216149722916087518444078094122875905588136512548492480533198169056534027444529131528680500639514022982864764287386816249241840378579136239101460791061481507265413253969885701070560831832335084095847685901958106401540122013250402537683759188957736833111591744675183454526554527329494823130672079811590848261993719974828566946638101820378782295991806730932685059866357767994779346002632026454959547645893032020084404969879153490439399629960757379442710522473286849218718025462444304321312751275897597358343538537191432607046651380046673727216632867566248401627365774305746410027598705545354233398975746820801323249353340182558378585559216940986538614204069238678829437078536757183185157995069182551070978403597574788130617176425587750021439828204659702549183897645588077499099767213897787149311952323742433757461628789629751798577703579858089688059802966117735482167391579453799959962060510999353251707846627950348005968867369461725887006435990291780868013594006222271262081896897166246152197891709804308073938389267896820703620094697556229095770864642720654473521900544350755236390499877095883377166030148759176603175610034566536626968891223506667677900068416970454764715522855934450667644242250923141581343958420913104973859244571554539275142559318728595068860174331984935360747272339643095413366824880101536804132696225451592475698427673966519682844794353389305352321045763089308515918625533505072244008914986248669800502808356139197446300137264432036416841845266000082669882264139238375440036624886399684940625265637636233691504717024440262023873448723833940324553162622664061597409391252114899758605838151705051636266107914834616595857906125180434562117385729935406515062113280976414206956842036756752340160126836309951834169372498513247669102672442771682834350030616095077598365363886104054608111096029227932021483992863901496194265835506117282604158775166568096622153240035465854969955077435446199155221204253966360764493970957090578247196151542115803474555669173798868213589416811174357915308892481516521202907859670728870857626148308355184825805792374780289743700545646470057493103809239758816207535755404115934703976120462620870551393305671626366897738727265130994331816103821293556432418446829105897933044345159363095703600205648045065495640670451473690188415135019613514496560519879946772758503412439953643308677773015324618954943744498727123555431157876505096454934461843716759100634481121197730814477690178886153846327716392470226401472654508456271960592746028463246069371496076641112193064774685739653892652221859454314516916700599287251228986856924962947923414951452870924320253497132184911487056208768336421586705012801223766038986455638806439083951690232001736941430647590657258127449061167267049030100535781521501435360585061245466593612106906335223822371336831667924093368358227682919166275499931858900415241249573933947041747827768530723954314276129755730385212110169035056078433789813628804569980440637034117511293706957031166167929210031989241511307958824920590170491809654727972437982192167846726010021960772333528364055820619686275346193280628269022603106193823739591987332854291443700931835049185028658681055845578678647845576140914737700156743413552205898160172043348844088696613214062209757026966894719047183417688476519684356432441530593001639313874063155245685885021787354253529391334074174533858239715225083400812033636977336148390057527391666172555439482884908957533768350489515599565558242114879026860252581919520029643074400684866564429701846035271609791496702741425372297136568533016568908692460748138857950349538488656916272618066526311616875446500895309640660809107472505135534208118257069267287614154973117300541323458350069395590871150126243298040240564677130547389662434730820474312478600541008177192782293878340772423792087903987589334242709090909137818211807328051824186144178629242984107385421519369682044440815726993973840791578718766305612933373428407531803781064797125595485740157715451691368718543893363490415783719965077236057168139214703535504038930061367934927506042782511353601802554220583543994628481654705080256856422261124727121976142583159324837415182769492711339404455361464695621097077480098102326599177231278355972994131096249137505320742608018254247776076824145029013050452995661439872720827479385039257538308166656397871961395621099937035545037939799983470414657635117950010204075050538313587916956376992021068997309640831938413041423178523728256858061478645662079692530528429152451089769243650462103934446432505373540169170988112410756874535214295975260514500736226111387150399349378173201374752145689028413423707507888458444198011304840672941348504903023562775511773012291591176856009149994935941013081933175514576523313386751147131824777870898321656604948343365176377936934160305457465274543196235360314848983724980485368789213980300803915937059288181880798027845321569747540173282563737686362969678851411093615789813929174023411145630903062347556499118873310392474200486654414656160625573014495304362545924569080555828425918152442302819064017630759591872761291334669706752012566021400094012270697875144912857362066404020705245904137233296155610542819596425684849075780236406791616753075836074630928933021199032023602418620148629704164685101424214499618173829618121614836586294486511334622750887713544409873051825262800176985194922137023157193759758628369494268587539062605426951834043824685662998125717900652795512565300024063336364410437672691045065943023052494420432664118189066637476910778813142734612640850102464073964027671091289380274673485603495143920605054946774457418806978514515361631082891313053025474137651116286063978053486576203603923705145450609560263335638861495016564042967715057274045942351683480863204775379745680743626982059444441027921446003341647174098334693683762832857522702066629241119602975462256403094380186293019739696931029503001759528811888448135557328936496008167978274607037820121152613377119457897463826315433310734782096419578043821982606999742780751693394672051029307180693798676999798409636197509551651546604838922843046570244912649127237768826055824728116678383002890895555384079774271587903868743902975996406106231668127664625619270614336718659753361214682675261524497282120945192323539235017718743453443936137772695500787220976303972103012448546907120342221473838377737650113697348141236890353481720326224369832456292912338158266584428906070128889510232934499835650535486944911798829505563158676315221439632895630761794804265955265733725541286932729522018427586016000131838641179094028182654620028176115233019957812815731660056288618842208797569678206793950959593115408684551995253336719051684576820811255937355987182738497543289392232722604381415249140898946594741205152441177427991283884522705349325497039838420901366280821744961561552238535971447024461814340965315564491211372750548066166486702537362374675689826967487064910330075009840981416933419559376547131243775402872928812475097938412706207189400716143554151677735757006784526427610166276266036332207128020019516622311103962272614238932194810275997255427565672631002956243116018236779274916468083965679315608954734395486026497484518929111083761676502025521488317811421081826590306965368113526867929813241548583163225454238093274335090064972055672354103249035519117479632946066064687709294845333811131035896161453832258494454764461289578202179264737192082724061145140850229640894338868971199114589335878092155085033210519620033028352289741686823477912579719842257155710544994760675709656659625376501045133437179509163485238751832130510443779930818053654427835583773250093458063808966684677983096655886749089298906978921239389785949406368160396078919858551081488412336330428245061480084975805213031057497682997424982670171580106898418912691099042256082838906519741911783718208632751211410229440943228633385238404604107662187548349438268855465129497829224094067452416936270299237461506663877951623906406809226689442837446905005166439438683498510524103388261067150382010368625164550172641384830357969816844801383848759870656958717953602702625275809085804666907852625722972668478586367975508852058434991961481035026239783786421193718503702737234615594622104707018079751915093352087453439869282272047786149746228889929033148233635136085801448584091915508619755281194551682339226694486159527113984013413163155369854576381479745062418389541325654809024681258470342192610112208604806123140799209525020144818584068367119484433693734468927328525316912674110631841193023352491630691437807489552740727996163771225169260402476910796405408564553640949426810367552382429396022962380910074630781210777240688666124569884564928292151266958755280350250057398590933544674079216917382195572510818041237854579625612040379236537062249498246287408823104539316608353968047873642145922533083754749124314638496228309194788606085737544709877979586124573579442968588917583580338273811678959911140171569145831935014659293352007438626617378170759171682658612688546501944598538849626437230155192462904177057945990785944811768379346593432570386122846560775844480104741250755297061841063585726671214937728322965436556573104936765770253031564042633279318993993281848754602856138642758947482311947284351073298411671703253702038298169691807361641937892157702483250738861743018960021402470202053341254166943355098197558181792498021994111824986561293364809097897318824788984152189240581424798044255017171053336910000110994857846206336661809746288239444031233479290561189440904604691443129994979243230663850326550246257530537225020028302617789704176147191629081743475845600326768234439136625159757903591219497283449727145664985889783632180577719449449793844766394476357543916326397796972336020592163882583630856171636198902660843235948960211739699997695544650431325846598398793430690919080666962362787102426301087136160734740622926670897322642544514309112848648254502345780572168228699798842642579107162943894406503310702009830478373815830558389537857499999393510170328218984061567313369194389672628272866904948701490400210985277622897180725792341356103304904101400904744515050964334363199930219888068546893721492388426802731680604993356721302631041955441567789914383440406067089486141444901549209056241878729347364035612967273004269541567871854949287063339618721196793003311641530116175608709855730622497060120805196970509788035151820318497795152036268150407591007435075553411377412080723410896378702932113159507037349364704134391286523662483078874435707140565805307578540689989766794375003617287729077996746367356271757118766311586606001292062248340412076007106499938883411980725741384975284712671632953499803590540961871083297337410545605660520753826066783742755037441901883509234495853753455696607940806857806306721962390525070586503021838571127815978362244906525098237616538325403126714150405284482550857908846295877280497816451688099210382453332149586022111312598240710831864273655544711744323941888307836939649800981378998317394562114467941914925997878699518277926191454588673982751346026783437438904058639102038424021728906599527088307574516458558065990916363947165689975608061319906913652394025882060816826252948704340700853105371033886370620768484201838386982636360174708618004879324275795198380789398336730710920011362142059123013512110172397962599342876941707861022608313774550834625648459829204170554012645606223498761142109916107477892634810215451274391337900976401600483054680046985648537700780384470353197546472390221489769059194027356552199705051776017122491829526012161051680510625166885639354227432605521907606327585935236316835460789916341062008419545334874374808185913750883566495738451248959157000393148351116124608622645753881181973125695740774914062349552826753704677582232160775034132507574832164305523304669471090540976095757523710309391989875158053578273772108138037283724163024188206655023500435104178311560208476249292387294512392822247011127326679784023555614232188317253957483299100313333410302799637149384028907882389346630239877717709417722070155277600732466588657798673402102298233688921008610985570430810551297100222014015314082809723810350098484003011132608545819560435207166499336220624116203569975616022906776818409442195349832727879368356732828301890241666081391186800892250898752384731855718495054403933669180998748251574662577612876033860376193394548859110658957054527563622876254859460982704601625967895456926628896427611169537937420044964612810575972277709808666228085562053299788389871775130677221607180365423680096773583539267596435700963459379288129265807633583137188567540412844079086838900384516910175494656540287861597800511506502349905397699322442016540675602250999825147779939409792019268828303300046063814306376102227453358023922836506944557033190437665639476739793315825955059955356144940451380303758977073935753398346161126526360962780357723426770244682565638648584483978185618763574010464020682127956410121313453174144894144895957156957187624746816070747246130116268146755304822252752754701594978228649927975847337315716469079568955640116568416583744720765231597261486324124528736754586743034636656990906010925463503802394622438146232256282654630613498018758197246536541306743332414388119166327827815661307744629991847236753793947114062777689186565882426115073759953406200260823737091402015530848769076924222578816821132827807075437535098047209574420110380194680697232922965712346088702552160878627923966586076328903995159187147084208008813639034204836293543185429016274198486435621609761992562819491021610137352006417761182923672593883517259310811284474882785860862114654253035819837046442821958343062505020423007228804459470487248313140803812697370318418583496140943229405836606724822699379930425996345636542302997310007287652008441951576647095824424051579071777313602701040151671402966716148666826136658427745516662843107959777141089951731420991533537493005636166377186882157611974739380862512395137739430987500076621920403792368822147231498147706811478728884066649727581560280261315304351577784768412524887854262586154306830419215802084801829531016735664579277890455497158410674069589840486923878896693164189590952550730896201868436972217009192963650766553888679252981606450711251724681317104677196331256045202004738750532015838918952321453956259728610385012759025500412467345743051705453724601075845612366367400711616671636640332025947644609341622102130617333911117865143827964758544637252781804327557012007296164532753268048901257111798536585171507443153030384494800565511319141069118361307588890835763552658675364471461261603981216751402459463685415156570132377839499016925243191025135563113898217924014441354764743088927656181924197171278748982420363385319823518383015997085037954574824523108698367551388641063781043041957865555745333694629248457323069612284205591775250162432433062297032808517079405760584783723257663689833580373905397501292774592692684472416307961748761898786224914732159699830818494339916204097141669748108853415100062709968353345001028482513283304389748548452669995295571437555693517432027055119039348594830223034167016236935965274211602852689393707880515015262128084815581819072070992191381624606799066097627041739928631310349264344372653245494861386153705177709243321205806231169173376272762426290387555896494491571561690759448336954242944999895774979959918837329093664580218703377411804682845868513893817253613602220983498631245707413628685542939849176051766350597535796877469931077310186620054709289792062539178797042273266078118067849771635773504953574791917255149006374477485925488179952873046049582302159473621798905829023095579048678138600419295760476231447152958497153715391297411955738712178856387047259795005290063933848781547970252285806473575623702946027376566689652040899159371808232827337988903892167758772581317519413300172016462917465641547802241115009212665602320455824661431635730741950321668039230881521394890852770606564878606756787887128756863403705289227373579780888245420960076622420656632549634018508601790300062218765487304452511606708861176660814713584539992193099427269233425459982220807189126049027729972583023570575225897226179750801180624933731502068739021128415591990221806402703588657997434622859513166452815550591999216312407705202999069837138991179561944276175037584047226815781967066431750847700198440724116606311487612055799363089665598954696500868020402071986471190483865840313558731026816095764250723370467728075453238789584285569279291349294577014818057998638904122231870772327559984042345080334654299945153079713604648628409836043812164071994007978820263085583047959915240791628171250622195044393195507780393570169352766816436127037934468740774915010292446455992781070467780311563406806700858119152232333677382282249690259837457406853035290931905924192023524877598148546692029743025091348476236548898008761151022333474754392255205307502115123363207247852755491342002678176978286190374738549323196981109180359138735930515811365658252305954819910294663047620391148315325622395335293806770581061280265523166593265950258107524192118991330342831837532455847887597714304742380365140791937290186037892160674267109237330409836179727260385747227987494326034915733613886257670416104277844248200715652997897604763822856811205642062774606915327488473827897318757510149233955487646556881238048134206776406644942088365771975906269842863506963574593788548045377250331255676933192091859956401705921429199813429535373699113547161682413787725094062063648520223122112455192529030607092500282364110659488219041771915344741923082184442387339674604276438701030322594434537429020742726573583944078247620950283516364484349953892540473917830347740687307267864578078550681663279178444641221951062935620716607231258679257054204539024297774204360735121157012475017402789727797355961440493533984240375590524670081448734816468250415062639814267031152539344703640071745232637778543975673662189156653831672978493924090404258553109205067600909348417303095667835813581903711308841386900562748633256436773544520068330753585459477920419906950539958707532002920929961318481422529291327635331365128642160821100353451007319027981160360008496692260973047297816266030862475244761186063746666024288954482046994252037188369816809990174474664390983611462815681719333721346160805055955157603346222942901266056229808288499698681506253485299262353425389008565651174375798837287369722699345213705326896635492230050055673237536390711068726902598815893248357170654135902605488244073007256475837126973268989704750203010164232946694272290618150945852836344754809591553745055554829438233432127073999898268248842039891543259918503727286657132373863334414783227749791991573913921697918532516259254077568897908054296207885732142375391038140688823592670931688042485027465784867925065990390206145115125000675971570540867589149385121246901861422025450975812161584261564097072907396402145274893709068333924336264872505684468099948646692452086877652329577810068164542478499498777212159947237940285623966538894857199359875454749705192051746195196584738922482975456256711141514490069678461403665231923007704068261597203251349332822100830288126533099860642829544960762255666051391858777774771260004621812622693815652244138654178365269370447436353326061606636809033522733599565581650286877701244899343616430687952252985860931077274411653924658343759662464338192001907441916687982090144746626717284236358802726647156031226921644727077712750026254056356360093477600493855800486211982400280158443069130688393258755610499615549343532589965898163521753034542785459709239478043239931497162841321761368180409591120042646426648261068193078729530177143483152334405627212878322152946527414249853439978049041783928522654377511821932957676709217579692072011756584777781017365131117073989647838577118678150798931894060194894093700719138657303446666476533570192792027761198236292322190735812683821168354590320696434773628834198342068232519692455367682731309021482505179941900664960101249355502826782011829416944676832269841825185564533457570934704349135623251797357260774002990907335360080555373835109221572448759990157047636491151383981572830460859023067440740083018788805502203225573934405963389818154136508254249686825211673707277830581080229794637930035327526920528868945125611951120146279554323275908879338794199401885649250189520996327038557351369544736720600440386155742316301136530428507259969598307910238392438111815485159388996968224145304413565832081681023676806063404091333159141857480450770271903955184851824048561002357235552649406475560735297972700367061108157090784670210150976079783900856415076511068005366812983567608829759925558822388502498758738234388356611158110969927629492653286844617974623094982005110765023308023077853782196401714186792772977299166572060844465421116065689956358270483219462014919454277576106785376919346278501473467401989032529465831564232397289764373660227887863743516050005981204654672917573266793866374320514880180497376436635104655543293335382567387632283708154686514527983315434189639541693406673601551144340505267706804133141431438474068093370429301503544977849552131248251800308586631845622966647719452615210038596436954862969597284312520132760725466045124500259624091654843159544708773299833142472849610243335960438586630134285736670292746907135794921440163086622212010524084838331575778155550066954206476195360097131207164146017370393535455848687579398636617311653423508442806452137272156360783968427382628875408668082494176186638774357138332417143232945157315449056291792688782331361393720430595643142358369639951685386558170187369371499781488480908722565744968058285596445210442718353041121855552533801489672260956623610301589924379013153332684787331203801647888847459438127042597500034277136976203248505331212937041825947184828496073871619283698991540214826908316870618147202875161227749133294472852090439467744897243665800084350395491738054700103523850868205406776447605594715430152560122797815941286123175313409982069200167317653638048127151595127646045717338722035455912432832947980310056633293794575690389663811760297613776736558812117244281556134978804631166217851535480865200369622157038368518079673122091336389704272504769649720705648571469591029898980861137041897364585804643970814279796975557235565601237428827324641295003299417579394247461541841563863693409805763740076222185261116886026481398439172789535762904843590304746990160056158826257284394804087486074020175898828567825101565202062852031372594034938463735726447889318366863726264835375833927695123883694526314985611278100908533104828786720353658616341207791238912825343833448337534778060736686514768875887923522448588779491123009771206243241844424314114859044553425028526345076925821120949377519353560565613356893721897306519379989835997813391889200398668986553011283699356735510432016374426228216846968638089045954502189221812619000921387887175015931051621186560207579057259833499583479222747947685400431654127887873615681821402584429643333661570610846178200944396075632139720206256407674620595366868912626005435433657299567630988301438684291373866424822098873171300436188287788836998028568273353005158698153372612240044379495671776659941722206927126624196024252762692961810696670435737030813461936008254054525160592824045889615886972447292676821752415623396873025383887826267647431162778364460275714849966946258248776459798665731076610246098076380915314570937088986826480358135318290949745055977935224143339228516888404918461668413571476702682395807106744967367883761688934563428103146400208886439398756889112440138473814475124058714901994558714480410307045656701778008156302677378270454246230312590663804247380641591392393260221725921021538792189144559889902502962441649459130017775273733480943965153730657254268247499270805813654964519588219289247538775595547262931749819750896367719326192850189293264994798364042282252943700695346415208350149094074895049967618763045085415546653296524331917739092053312392517115848173496436728986998750196739988959577414554048148732223980518351375521461954482035875705411749812353418000566003127939256260221119322414575392016710874252741705855195395953557800749584404552063587437265455794876635820682208109890089190432409227260720737342559524317295699535035132757091742727114808715847726349433024102405407486301466196260044323754625786345800871472012034393830289486766913300237866319986059078335299147192393335687800061321990063895251248802998500103286512073043479773339064760984657656989732410823502228282506445107118009755373171637442407886790280051127169958425213319001791668366827051074227397432402205692226563984562589100738956885431612921187500852766858654608533671356926340371078923585614564114409877838777547264299461142406179242395389345232080320825302423482331247901755555686869074884338830627485744005173765837529562577417347555613530891300104641650061401756362631947580111475788163025319803044957110768050105500368638362483590927843573779788923718200675172840094417250495794118840939761535076160522999331942810839619540239111970030235632725502486680039561362441241131644932195396497652248916449242212363009472395166916835220271460175242862185684106533556731970525726984118113418473129992493781873252518948764015238093195551209302466687087991883882810677770438576948919813660898400476146011220129144893208393821079400579514423228903168075430245519505675767267870811148158594751067214316258269459384157320492859267159940019654662269200220744671461875074481470379839909991370368871950260798498127761007701054449803678178943001336433196170855428461887447687212794804863287767212616834283832624870193340921059443689745977959603299512452827446735741160740905592544773863818096769442671618658961355937970518418286543597890755841808791246083832049116098506572035309716975056280385381625190763949218349620484112733778824973488936548713383338778058628570262898460595865975554939895494060887801036974863955248992697526684191170714428176345162595435402836067238145924143989113698990133942432814883415113652491109184453200842646970359872934501610086989857395962966955842156902639600455690277048034827042200691333416821720505600404769605801573410324829890261388196271129982006653193852094745457706584850814609780376053927689377436030246879780356186073315849473905520223512844632401063880166697032167622064290588618299866256811927089198908280900726450576773308774975201428026418597157130707054576319630306378577924162489283844822775045294401566620576572578802112411826864554227273021946364187177487488924521771707298832270482160275470982646690186673454087472048377949885256725151219808773436662797092714872287178269612910246421739987244103005450148214130132538580964246092166807647145573441287490517958910221205592974182718198577142635572024564649662015164224263138217953513455225993095202215219695857482684581558593939657163061715155435589794727228424357614584256215005803944361309271749618103193019779608857867787440874475257331155911870045371686943627884760440872784336112586689412237966467497626869250789164983379490267655419381208240014192735251812767965422937229822246311392653034687003305354409165294395780806138731698188944419814740869672951521273518532996004617044866150638692649189675541877285812198754423408626701403906052232848501635144727660183296885089379009573623385744518692287555636350788111842650783814206412104640914147090297193194800132720063803718623408299008698378508359513667269684247497055867592408794781196631909960876857920179714896006955341142559866726812226665649282113693680314981169158770392483943599499016439296045548998967932512719854552075391796641098855940568046258376029520807602847358509359052640468703706383434066864570360272780556141165595651044990931383109335181716217189496701551793329934942480798707635065217507912072406390888876273380712243787129725710505977494461471283275889169389529206466243759321369984948379597050849849132975978021426255546079719813179021168372835950490787104565467926539427077914282116031141244592339606345550655231240774425444892600348121134134631605564145900419631990530170011788276984114182347413610945452880745037774156179799861082342142487950663052740243545558099289479328785175812133389375634941723697947378978437162739086446699018168731265879270130255773586620446860676450880532331164805421481980024178284489938820467346055531908630056347025796910309836840720802393421417357151728971783480974950007296755817430232017493430621172841223104448481049469977547237274336347590769174091162912189766150962583693353463488456250371646744114082613309995950320912575041904239408199307739045048546752487318230847060095410476371384002048225196043904563457603273023883578398963756436658354340133178642346066439562255272017596911889647826367570708322109160392606217151142121558327411921075989752117223629601588255568610382848518190913454857613994224541615997952145687404585061686158710358408973103759252704209122321564848759086071506735971209664622244108649987302179692613080678342726065924273874236722346357820693986823020602077002337906891698120247604227953857649350408296365236399692021736978859254480656321740220619617238305131831938075638386305230400321575155703686225646531035271821599444181765021775065720130536677799726839048980000479541730690388197722799627060177368102841001626793959092267237202683597108810963070416257103364885680969996761422456893237773086100603259766212489591994517844395987693741624669574015411230481938982344087784412804569633274051960974699783026784393621869956342195602310355443033399590534069647876698485607304871999054851252154403517880848881291713938254861999516538721428964680748900433434655504886495091668992798370109215508210414465589262569286272658406444895573436725680211012434383944555606821206876195482382168295782585938114263559704564634381920017095389547767377529614443607663453568060370181562725591519408389048295798046895130930072581049635179234922521880725205833100153278471472678321142022788395718369591507966801363374523116765280986430735806312850220383020565053558322881228835977556449208219442264056643022545772778838546244917005877665415565225750354402153605980688910048060886048099070163278372550526086049108626936019632705186334699959940227434455628949667660725419117797539574003787408087965748589898575556592803564147717081211464005407367878742627698412039001607550374696776534458014168731103164621651153213375726583268629084912051082008074680784701554632167709888877026266303064076633304651501923840366029501013958364747889714734116116919314408807660864605219108096274073939131203537776345501393365100615664307238288856148082670124711849512592223374710236018055467626041183052499893237342545407600853333417716490405082301179526560573866207897419461355302704593088831223662414513447005957934766358842335609986386551173418148281588873273126448220648756474911506921555374335386675937818649101132545721181831983592056365438632802947445887626263090661309153737639231930561597997837922507617915248747394938012929919357103962487142891541077585420265039345450435099796511276596003200791040828844012900575001790459768287476623673100955720969664170279073085007042387813142122342315239002016709759914927861716166968534677654072391520933025918292557625524797687517691168155279646330662855738840679833105738109986546076384710926670335463493378996368240187688022100269832564195830825387975521125774459448365793099659515525172289614685641050633629374525341297029352528951449308921972155107312559239196444091210333272149259485087521631811386799462096893869097014270332652387853945557260974396184347580041889617009842246089449789052216283128035024523871184130034344266703872304462452456552587566738652741895796258403412436343652748525862570671202950973870240507493215658472389348237609399080701865586405720800564763040319295948878498452048519413493544482840706790096127401941613375394065739421994898040707948384321386182334862639985990599895743812989052701610051452762718413358203344917878198947786019461125263157712900664640850553139259526098522537881732553876470732179325643138619334672463492997370643996498068004844262618018884044687180714648020926851721358476770369458015827421685810990364699041944317524747003072765123700528474211863245980339936745260454768552764757412096202156354681187201984568468296908391479838947583274092654962984523429974753742185938900191620416748468498071054562821711773813434322423170640265526991473461235165574162839847875943090851505910685094796745293604596256481704221330796946647604281292617537055081740377730427855092397455765333318394928163716723247631280919250349024437869400337674567279811223655869994968379321883254886132148325523179274142735185144811894651883491181740013690798930054656318339125536083973169139067114905519714883559801337348973643521622133561745915123521141487193268038819389727410842411842015380927976986838051221918325782102985201357948986670448221134182594080698654589279877529199252326526574351266306583916232563965196143485666807066382630355997364107978455093858476817915210238176289799436721976487858581328420809947178223395789400597424648402402598165993558818861210301401738403408380300465708300994772676986304322650952584008722303729950186683122803758412688527018756520908389415730002561148741736409602864592175184591945565309205409626310711149145344435327326099056576577862785606295091721391259652897089091710813493295664881344130883630345869501177595797585954836953107821561506933887014704578474742812802062077810252927343813282565130923865738643612850319462692690735179204693652294827267412758461831395561953869083138313313450005645681193562877406730615594098355556854949468453632743956854352854917347022738683240662130553979071541711783055976939903388078876663787990283304886285947838228258626778259130549986795387313023376374074089003195608689396208876508358710429547266353320093554337694481103726017498355266672885739484607326412914362131335785190852880139686552609443525671878831704209906955752001310537399840757213366493838663853244056664174592427264196959172985609920407218567380448723290244115659616969497209552256125745110128425015554121701043689919887739826184745305284292214141635414387600545606044000470612180698536262570600391342056373156631413665582680620451011885607392063910776231184844240784682563436122536793788141593060629996364943073499686588965683858143411975055323137315233918496058836356048098372360231776355425671183453437501017369769416008207128766896858159482203519014771218200574489017465120823199481515095364772447723411764273155934981739960835181194301309364840314582405821684934057734664350944788247707789327876651712652468477393016144051366078334767559689570077426472505009380356420299451112950345975391273357012613090957639971066245234012814206765082353070574340362900979525681541004643727247433898742624455598049005093161439000295270189388371436271733544926724004075820434301370359008580283216853316867952876524235118658033002310248584516239021221008417899492327893084286893319299147833402044206531808002358360379746010930956839975143240399300566176859623870662559535765990818872387513504333050725640386125981088407595151295146957763816322317063225121522614783784516777637602842991312071058212810592056137241945625991739057674970583120222338102900996450233874406193165212530755051925735097975881399951665312245577580898605330340523810018382105449089162827573333170133643227401145310452611477892656320396461363758982428797145463086248777471314137002961889093474022733634707452133177728813015310815267413346319977187747764750708177599923634331615733356902611464702879697369406134623429183883507961289025565330642358761403623744023328235652603574091328043478073054096012788529926546193478639424108627900170455361165357162589520861931435997313765143882454102840112418413331800403529739677378641367035468512830977428865259324787594140867150518522154940675510354752782528535685614667736076495141283901903557524133386967671660608199680130043098839404139590722815741114248942614718328912833192379861148798174920762613535114925462180231681846070458190841148611420904339591430998458654940669902328382719758654673400183865368719217649958970743125333809677187083689860473918758204098831405020311698906784799009205901749107091905637078262318183351800813627004309192975626382424705177421917970992080745336534418644225633199891638829530679328442084664104045277869806848325862819352154508100968379727152792764401397834931893451887630549642185707334876045906652600718950229226035124339564565424630217978418778288910079764060116611867733401571179287042176660008001697375400415743152530652980266048867410683109432054948957685009500682509584395797184892583409697234058753978721567794498637225011975037186033547895891116793571800329157175471905670950759653170641588082526597936145439764084895855169972843584855442694140239380317612265110919726031711852882149299528794251230460648933463972086839825629066605604969757032685254595291823734945373643321912409673161515994897408556262835840906076594385851749481431846404612802079766002112635546931546261073153454256981893626541062521559291976965626755448422157725737280789387393550533893424047018709081508492055595866377371288687067151413736391604488552611375490555352309282605829761789414290111561480880980236527288262627824958052603647686726475977788982020042318297378206976511005719821305285112932065681740958106678516124481619940530209160452999920835354917579790712011284635284566699776863820405268402360688579399193293330457819782132796432584119652870866342974305771923381302858795854178929182746104317329789703624178383011634824120518386788827730783348854788726145687182848512135870243748843219219466958025067430624014183084333916956659514836816225595704326051578368299219999355088524299342065313643014378009545301325051985446498513162589937649465649709754396966128415774061118424008122490021545895365690850268945037314644367009326051039612890042205272759937306717933482316145443326765078070073919642076650426210774209954186558568501445575731076106171315272922770763503524176176656548336691305741937223202694177049745726067994421986997510295381378159706868404843700643605074816780478431754652890637029926065187454349352492434414628621002200637879158659215711043892805176801560701374461376503263164099527215087301795161301681818175525017215638179421906749762473722772218946569134261299186690850184949467460760228714830391945756313674240839006839608632263584870547952642412611622841507750484458016968738829801113900419508478080380479659748077036707801006293052264226339701508918380226279145529424304688328081507902504387628176466835275540903712478903290235419846718089918641850634349568619950882290335615766497103192272336405958110426364548551752957699854585906678528041775954662588489547563974688821123154875198361534164237885138339743499101019070866726756123285985642738344901791681303667593439480622337306613932559498626448346900312167906257614831865582262696911773619938521436066157481055464234267098248885785006557605053617611383059723142375869877241138072642536430151334029460703321290735349676711168877798464437157157643442990318711135120378091278753044754388254605895204066289556380725073598322486773004078418362716952735265070123435117815973737100382996368831697260298074392156547107587994801225702535942843968648289565548778457455539473926705346810483981661793690927557443293053111981991167732911397154601186676462128242300688848285173340898130508862508995213518467936425251595896232092392094445551084069280120419952429486959078965280963307791762214813993664957524850781965769857628572499373197897998060133380807324395413153136168544012167974489322460615709558570719324966079978577861820062258821614901025271678714333774174314969623293657970678892030846121439032091310691641275598487246686869739842468710266744126371785087584791998663239144931789935828659214759088658586666242258656582698481079977645573807100998926502284502028590170472658372553020846697493840452659979294929826880789957304975708503207108598660542394999980030122286644510758312456498424085341023905871056197502501691218425844317335433381563383656703611141846154944722472201314867908334099585337416088853306435536167982066563005792355780402671728797450561792123135589967419004715691081543295416045116144569372463276100959880074899410998484981158197194380973121276471705761985691417094592384240739531556753905435399495654182705055893986782731004512363148977904762049184727358144014116826305064295126920618862316741964396120967228984582390084964938926355759333464537948797661828355204275593229178448836139533636121862337027055116622830249118500493721925008977701471997438418141304683435103083237420173204844021976328860842394657892007458254858365722488691592107037095360539069203499210784761314690911234766013937843297041769184431717618243259505103283820391867928749108424895433432646912133287999555030693171270472107704630794960372166527081103179499385822655704069893279475385049493556563588553413423740166733214065150182492304961024314349893343926597795751507768341979835169310876423300029362655815545154193285336210664136087752303773690367506945055052990290661194111142535082058591106805712574081546520831156784910193601155843162215523019639550004543138326379758925047416478339007711964350322664249026642739352248282510449728953266709279138498240055731693878840634919960381840967456738004893016143692711169493263431579351746573436493241608583994781786738948020586928113755700451220506495591928013755193639244507342069414756412220271111944111751174937999840860738483301841481911099519474281686520338465115160221388348809391648583719055160594285930379818200194832215952419206045528870235205646059485480985060023745160316851933976084020761743956296976976514528763657633409832693821260147826020851525155063650859049952054238283868044724958757001328015813262316253915268863184555955473036699136911151115129134795818155755147842745719352673975048902968550425882961565088318911502819891863826239306770556040185734143803247433712603568792205405062179507754895017190847544512744487503110859198928139642036907368144476882531488740337494759916844829617122592757256112228772791948976340208342283989246714877830142017264534482218891023015531047720038473767540049825078960881199966064200475675623969252106847298582085865047350348383604082031327035637679399070128531197281946691825760783717708686795747988878696280995695087537302962611689291774661765040963053234067154918676615712045159791840408202547106189053182215500112120969729185265675031450772320237473650700858568141782568899393132661235127793072536021001244320547797744382950607016330296364466085355807252969116179511003738214726439316368110161538580529406720024179841055659478455434133376473847551976764558573135630725683983485949108539086336154592094316524546861877302607771942042739509677997653131525724858285852232100040007062955894406465490674508099920570950498003424153845007513924104364163283016151753561799213313779123959491727367926895006340814291778885465910235880268389723973810107999418827981226783432748172633950911650198464406211645021086756414613480729493873125618251935015390859777307510334633138138357528589428577304843227415493265130474086145350142950711788952195812960931471255804778160361726020259096554190287365960335121458376631967875513872246863675793309600766255236563257671629285251146929079610237775044423844917994907316543897790036760765703632933687773996267830020930386865195908712000534679056705240257623118636693874956197360508898725983912786599660369424706236843982526095936779504523417961223487699577466756397237714113755902481750841288973710754606503309843113915553888810317924254334890893951482909754648836414916028551174434105137881675020773778877653401547524353538879326762338096403598127079547948667813086349115023346802123585604772964096188594316625684340396497645106995341140678152441141909575875294220794222673946745294684815593176070393318854157644761280670430196924773280376498241370935850967342510104577153238436188689377656642480672856182335279840409931485951185509629610966437517303627741129261227571039251462782233084552033956848894608520007303301212761728745825140564889860155662853049314794637148498982603929148892047836704225689617028733032338480830938793855084891283776891650426821886403534793620668668530276753964688025771071838923526521266430289187536005990178892232228359426386894802336521033953285540278978918173764235102110517183985193424702689165370992029493691231920666390834482899197607672071493890684203045032571120321581971611711638388776759704381623116388981229072284330043142271280148859799514176102654289220218230925885380235654727768946460586684646586097576619495318305701068438762275770749133162174422988430329575514529502359565196050411539016650668110224100482005444825592906206823812295422762515449072883294332122847313526414819831736592049066192199313243223905009527233926607068242711253129627343627813920790804189365395406583913548946765527684920866918624018348869940077569999721842398350618341735452589904534273403170053194849212095404715454771392124313579428134004334974195185796361774671828719115341877431925855270166573191285197012303792801977175249845126978810756180680064349138237627764618324037633200593361822993245203312067935117502408768830576566108867512151833756263795179769398213672805393286922761595651441723123874662331957341855313389579320759576484923278044560177192295911477786538475258332758705224809650273298206794917512677113478015693586512766533033205211674209230044097757372305770700169664215155043529612391392492152266819344278294925516479265768407027636832710484828003990220730457397237576810251174542288308621651991255705248966420868325795768264729325341008401141797709326322723570147692091327529990116622695847872917360145617321135930006890458968913966364862592580326326088788028782534156008291159271729035646535752713142343554417027726827641153234436571088733590285900817332376538251660386032768713100706939721531869406949418260985244835148696798681878053718366703665278648694727131474732759359037088310773840048855791595636713800399722416088612354176414933723510139524001487685099352181760468605426621685431122035978279360192193130546634536159806585345199974774259921142241227719651625460559996250792114490860919560483633531506829307588242985177719033758635683629307147929024119893212823541155130875177130676314833286845163039868643723716948754188245304554816108644512171897341711527261953452150250437317854395646735627875054279328647046712059794980849447051918774385931793583626694683886667195349141371457260596092267390186920579079667073369889074715084737245743753943969598784352952833602047939208736450896764687444929541231819844600699731424038090719979302694356847938369516569641816913665207662489834439133723695424558517995304258222154626924785095901103791988445822774449072382885565690393733401205288291926067410329283958533869707429697710530951252069555702918807900450494472571277213446840771985121316639961724998173739922877029206760101951053110293107394139161597449274216515902404761865483081280737368066959245749343621253956658006589111372461074321321824044676204290018879403322369505752033687236912979473238406425112960737594880510308315484765154292535928007308377083571793058743784957513335793496775725116280323906001598009806613323301100053282574840517510953205138048998015774493938805314662936564811658242997171464384036253143688285272217905812645562185503964888738139586446580743118411178779981152473490646333829404562240903562821134186733066965185748085306645877083902290173916014357772317196979027320979601414974476260191808164068990033787189355318405717766255911332270556467022429347329645988966400688722965665356798022665874620622813230618937429371713011962890681161610528783642741291439573209345233164826367686942999929698903370222868536484810444182123783406316652115772140574792781540706032968053092681305795274203039051245163489412267724102746325409831428744077345904002094203884319008247603506515595416544394368086067007443547060047075409789609533027940979220383791318869396131538753978234060577376155374390667393651843204679627304959825453375642259073295092839792757571510413104609415402491344537961755606061526762990351374357096681880082657249820926787034572969235210655968067941337811903171898607249388349217034477991046917840605645553324839184516012722257879549134447490858173299676128522034854021597900565694905991596996429966444709398522468042381697109395894491693205365740927193000731464265540372267496467011764968122251673270248898366677742404926979478994314848284665695754846809862904753983643835274268048022733336278316994449226644882614587254156227320203228433671643714884425313990723246615342719421048958899338444491590911879647692949999870308558501494703014226414165442456444129501256333750351327883566141836393736014385918105785675490594120648320315303319008406962393082936360314163367111247645030642934552238829187044069443199140040016848184844300462851039770038618455159282333487758113167944363904155740681569326462190184363082699890790267389149571233468962406339905352415965235544260390681263082445579864755643846034411993983638102224063582276729538973943519242012043811571354081851507279885220716262299224964443843953873746777118695455989979077510370939712302950973985887177378446008733526337048477662593414655693475613274020808621370437483376315302698790295244542458216107539609422940800361778651071115821793473971649541285892722424903996357926045483106835281666920705554359017619653061647601676852827420170120457206151749193185044888416002245733957695976089959091578872214219883094004757633530690107885745026956069634938720630460773810318638001230357330646993616252522430155247567250078438791925399478252370474560118871325821320416231341658706360048525227813661589918112090252404737250004764599043585322007005843749653649073468420697955044499907168058600945267081354107814417016672901025883791456514127816574721659940779611234991741584275405514955101187431410357601439745027062938403878608790002904150281806985969286277775955729917960386774489675200555868596049129399753502384699221620064892668406027066961742525259716809088653841950284306262121080570293706977590737743516626438036748547752080657843882696993280477449207559154549106434197135238408283846884194159206875410796660328346235362811858034796426137914363934418978517227319639659005348855984342075386020565365292123908110876148108801105654276649822412061433722417582464558312752887498529621108657051531552982425496196857581186406479626666655891621292707980280523329505240599701111809238348993218582356576615620611272748670470465458844723167478550423174216645182227205530680463034110804889203171560993232265187822683407999361243228436604160206468880525468688695547377947750848497742665475200824733834711334692233701026545465735521195784018649289179240328954123625884790772477049559231289479228037605884849121191026250884824051562398512057785723729302739132535425930577724262921647366082004565747271234503119274784046634124362806569343295124428833829894749637351906274014766171995708695373351731546446796028652840486861223416454794912292770015624182337566265654825134334948058579308720500782038443923953131442800796226937313654270822476493249837942360078993197322513746679544517527753712738704386559132083900353438505157435522410173955609045453107806057539304862193188202678867029276220442732408113397254308263501984569378034430119388242887541558517967012115481238365273715681063071805020221297445636612100245112047394410664776203275298985340266171035737450928693190113511245269751062412832053113402178980410480245605792024333172433069586558194111253250414472571083617673503915411250486418291988534404698949257365317041339941370651519933797216434681334835703044370573102018150369615125863450198352466832746358790684966221073822640485744983842463288232198930325085035768734076606004510915934251396597835749535716203126119234654099148575767837074580641439417868721734812984240358240387510274351670830083766291287850767557939897566766282922119946212949010820485517647539655533795295346398736965993518082771233305836354356534144395556291630157763787964331446753285919770652054777896045245747558439447953991010504329654752938096392912323849523147024062521066579452938354204661500261173735015429148008786981326424262188029685402580971946125101042771354696476914231539272392204613087348906103825467095467580324938893668935521207597846260138920624929340077170522988439826141512785785881751691912788896655972732900413662458771532637724360575740958110428519235506791687627518810013620804464472576500027485980898981425207992389756505434469153120872695125030577062945546866173219867827101198858985350021510952320879192796793809300225448876948255300224415581162003018033250936586577498488434130178574530572534267401104307714243921855904138994480364257389885646866008840239911376127812782067321613063763450137832945027653932846731205792001514711773233775262238319920195265635565950072259275286829369073007959154594467860820482295041535376634840416367260639000272882849738472420411351162315220530377214786414724919071417533850675502225888692279750045282468658514328234295284552711048459953217631886243950600637307930814092391199631302576328286617875765465308076427816243539748662108738848025207435094290330460914230773265801600639967415763162630368890160533728056351760265560666613672271586647364303853787609410673321085998662251953577935390391672786510567572310512240972796546364225994161942247046629316591241177454131835884885896345259204808003898281161543477200202086538356435121415533948706113243399147025718402372155023152372114666652223278135884349460731193636536322612581722728489452308578116311418467831766359984376038001077497440624077437834560137529853646678145957067599323359515930378509721334180803007177844063283601168317989303216921003505018233500872756981438180184198370517659279164176859827880182269074523395863268638989067207826082483092059817964353326973001641059250797608122468791088025752481408551981445623645341997487001639502507029843105280944941527461456201906391209371311636442695484104648279508040480788792204395030938256326664002804405674556921725874891423531691214226708234669652162749195046438077460127001660320468971422976597064640478515328592323659195803796309802681128961366867753647168603528617571242645017938436751289393688249827449213693843197277562938292975172551514924263031958840611721667614224163945612530601404844391004028002827076871514662793707810068695178417466400957046843394381779635397839487383154866227947302138136876835379091550584098490764952628156316066138265862782491248625560542970000590002406011138068208899787953715087671114894814479349862976149567125859707861809260554421423801579234705700464511371058946321173903258340474050734948242037403696275118953859316975290979277446366398794857858295281428833367545282678813406931310522682077249598109659675589611337641981025781370282351951253282286458302459335220000716315628045668367043826350730094463632624282048193909747136074314717546523383759411593798820655942620562139346263331097376010685780886194627960603779744570237500719867864777375402177458209158606896679904374402138008736453588072341401720593235968473279143079980394033167846076317445717186673685140785997626635658687100418051499582446742804647722317815307712414143517159376688999325669155488416440956483826439870114792506455105369916825008770454665065408724596861757920721244059217922305821534038517195619855024902458173261814668017217835410653874487924366238291666204717598333874963151776357648267770349860935585850570638607250362652793298878086196290291423843723023273904442327147943671134908858986002312862396409942614096787582534579757695880240489514148449371064990407287099397265131442514468466622055704803250314614108016596289562372166997460343210606032674461162264899181606380339645508792658950765212204162094263258619400347394197976450068864792302388569865673560025246984007530318577053046236549350780950175587984252584005349875555552996101318684045222231728982356700299859513864556843124350508395723517159355084225375228952680767548374280006808820345242891184481267180416580626327320729110127163244121991743538346385257338291639236063166717108957874790337109532445789804150173800733837720251257512148915460815745169225613961113202553638457834671195093165562295189888653108942607438886217683986675728692538764452748911669225418361305632466709442155315694442376757193473442978947130837976198225121265690720448183985696920987564010797112811170722398117312171203200013807640269452782203694818749663228805334057983382334080582019726305070190216537989269060806957346397310416570522588345607995160038192269599733460327843907227691404551948777723638268505918355067533901605173341071987547754834290072216680764806519604271749963644624181700782424078207722789097279171361940778223830987321555258013252853951219727951178501421431244021015294407852605245738770699847918655810184108342115125253373714039100516364481400277890874578471909864589666780702932759157060899384031421709818554570864703744544156606983218661571087159159599577782585441211869714486424943407912335939911075964539543517383526457158972391167669610871890652450931769711779030468223344759423184783836389982996359164331711285937611206525554730420422081555107719565286370876192439858894170758420838982254716842308894746830561439704488358793622659492968447432922919683543502956781381872991784173477291542058358002740726124896315454924526418591520171219654485391687514265493665041295513091102846302099329924563034031427783563771204991438081214666460648465241307474964204195571907398227425978444062493916681228682170397112018146601365043910379770514747008651184229773008273420382345903446824138629789724250626205312008718668133542209769234608507848067802888497192963948012146744448469991302901657151190461667419912008526466979642833939039858546082997931466499406058136559269844020638409157311912086938598078431091856270868666090577288100232274337608173292427131795850524579992056394407001074866405101475720459739234826836712313771412045823662672453153009355933402952269982124328051122897943013797967740343007622213339730032599719148327843962609431815452296861314727358398489579128507798102621832705088797255040294788435239827159835307792350759490668039283133874614735319903147142121929523978387196519012637342810394040780968919845051498008506943353086052168848400422524225851171548535459203290416592470350366678557782255527495029803288800068111861880013005786721816374964991703198959697401127019822354861218744691066565336604987444107628127004242273958540793486180781599321239985190787902839474852041756634832779238458419837396871734028749073611935483681055613412919382835836467200655763276040973184361073404822322790144255445167295924326760233902356185323510874139555823197188141166531459914852725010430095996223275951409597100712549356619771300289819838525111846623269298658016094424672129177379725557740797331078581797545723185170995112786980747907195584372171991651193220064886366069917338149532345897850840739642456189111870789632825298774133133260043571953776958785561535232713676823181363842211338234345549766581365641212001899876521039386998688268203371760414937312531854776490293137796130833793463031146620905128989820504911296546684481191688400748079404685768351397014153663666770795931059446252772734513089715730182792879243251367837532312602114355748413943722618448496362246255855762697716384504986427192943057020505533119674233201276990299964681497946634842288318507938385852208433782735213262892689897544179504934244798849505270133246250272862354462803450301349081698218558175596019435810718428440994436676619653089132960178572699630420404777135790826324070334922615389495842608458965293274975638860085940623683488035386118041481844604496784410919322658426103028793368104469906562312963532237603336669535052068286629759962523453327495187274808383538362883078375763649326691609829067672664799070626417043285440071087468540547226104744136285687135839482134544275074449376406447037120970288861272621823304368619524721673431369494386238769118624511970580081256804675122992844328276707615630531568374427827181454204637070057696517198278206658610559362584765901894807797361922745952837329989958801373799818999294607051365555723566336353298447080219973472310472910625133558358404053010763516362738629617487506086009613363218918822042411335457674597674196367983312729236089358881372664204724935619946749482209187498643698229047587734325458866010614057653054949513721350872177316968952773990757257090616428468319909573892694705180923982743206469540404778583368527735504327743736403683485353252735251565105011739311377561157139270216530362201728112250129112473762493001628834803381789758770687001485066097769643035543447841780028074473272572094360973651575623598501763326358436695276758081392454185109610473723614513355446111943704025642962492935464466600048877531388014443985926687483530896840147218622753293635789096805119002657295829645157756060614371501775012482782538270808117786598715398463028056514131194403126024428538064879147380294473637776711156723720704700664977221407496237279921759177892679639024671113147538365474537729519807285268482944549341818739773539503411948195252486230325724021547869052890673812507403950533380091105752448892335470465704231662380086111798666618749692927416954113033104038995576051282864302789567278995498539888878006091526101942310867992113793090372219899262251481735914890614451863988738471611000478711979293685353258084851955189991388963708136535715757732025277258729029040641036524310260402760293700145631710227095015903901515005038034181656225176825791538966206253260230002809272269507135793403327852611737040803260356066523354133953801802692723104176210065311919849794945443193704587215146628364098518105694956367607389719002546177839456874479091133106938085844715897557110521217007375621682859870826040072759342259581836203776707324122256553464820180854467277773480367232990602071474818156671178054209043719535689320559200301327075246796089873827313265029625230413464590960202281819775386928569759648326038630378778588547518674427720781366130960450124861258614057763652394180601737741224924974867706757216386972296961318077237663569968336103649097224365558022353649027294998206519198630540969232519683632141685914034585253490399874395513189410561773134654539387640375927625718287026730255945582895927590789277078089520371916340714377207517295251757544676090636992947968608622267826657610467970650870911961474285193283708726949184520892102119509389214238211365907782813915387929467393772410832695030009312895127083079800422150892719599672831063914448080183103399594554073645212392091450624661504343711525990070829241821362742386898815242815770730612472036511948451688833407295207094865624048165660972851222647190124450250991610421665871275835727137731275521798474088854916681806194891004406394522795939321949189638637218977210449774349095662732823729864061796876810596023062561689210619206535251084741600651146470709608841473404539462155553695459664181259524692804030802452910264910691407814830127278021466591385638882025019530780895946217138036107474719659889218254510981179620207869513717549058037278665013947515374915442217228909469965967019860160553934465925263393113739734407592670875806797996295320328504996805671314555620042552654155043707261999614535233168242326299656612184278417279528366837970882136704176136902850990752441388092404171552772501384845749086826964758435453566673533554137372343566117954010177957338146194513369509420008900370112110756959342327317633813471002305296953438652130689200125594419217949397042586504436700989639717529189777942780555472894743717794178490195415460483104396125468670266674965444707580170243457182197952621645744847669696638100489341811890228200118832264276469143377000457322455725872830775163149231731841445404836216855669747020845167615329044442950775594221585768854382479162527492458117828492152030340605699449022818367379650477194298126308544426073920899301343964121164305836651759709237230498440611959858934815616146135220333470315359698895560672476335135723999130998276824675463618377789179282170006257322379031066536916410032583444763117509375540500819418429685341061343665774936283448822020994764175531533798013211373045983963035641989550990458823391046117213282065957029946853160275088168971475660892015177400981344425247054463520322856822254355807597586410797970798721012547040502706648210630236521385070374286229500658200222764426243064642115689417929831026350191672894735600216980313926088808026279238206650886592616081701483505389129091026084399532903439108675291756410427723617727229690280075427298472269007296116088044658523126004868799797565782460638709108009395640861812347167566695003245063713771255723815961161935487484806873358742684790724398754444776196743965041724287230500188673760347690519283272210525145692423059368366313768931613539388272938521048122055723690273938978362637309440777648200129048831406288175292855787876735781587765553927993575710310871141035225430603693492497625745963044596410843534437180525222384971517957692726914327891535464338612893121398572440135853354352915382485878892421976303815793711051110135949815945681033835287841695621716421914983822628424673784782833757391835043968207013090501418439394036723795393162597525924900378493721156302244743005245710460580350689507213440337917741403109125445190206741693330464987426497553388733473264082878304932221386707438899068693607850593749727321242765662178966008406613029603200681577414834087087919470716056832364973493740941563204765514592382356999279242501817927827853915141297597283079021294042527948795957541784032014122440196194596580736508515166672472978440088096087431661914549862679359145273093510092645646574172031579573545701131299314502752261917123227625680021059624887088463864011830219136785434161331586705508791624863212025620427540726969421375832836906730345939367377092201861890142961364475437000485487961077928516998333960451741219836898063622565052984935362522874544598769199301520967356809074382818056038722485554464935160243938786262575643811619224897455727804544399138560028097686101846296483182172471946232248542821482577543116023686126641336380079635565823592259931480225921066854127961863583504952697645144629405717771477123083665725679729249768472065565807881962071283277860154189093739874880559719268878442718501700299532716927063749183723472853067563161681354227706312070148192544935070623165339402745679708567657677933844260379963859696136564209877092627241698494157268808716859233395059445229474926221024721567484187605250763757573974598448058050752498586486593915688222508212494929759402455165538221396682350845717758164387568441416020997494940041138550061236179517126586673299378490705131708682590377106666745699683184126650576852642007275384141317855590404645259210389449700915730466675816983360495847063705558131763801534348140508174802486217194352568021629747942643642327785015793618585152761997440582756201671673156237116797301610834669748039420517820571533403961918585760472901784844637523415255610840494506637531780683477644588799396421498481071460062247072794469800556196017730150940150519192738236110263436116901930247897774605373059867886950466240989957391732635172266292312111606932837648282556025065791496699440667651581708195214623658493757405009090653667768365074046015895289611800560917215636509895421942552102493306722982402511364308012757931764434658721076340846279239897979166736884969923951403504150500793607803762364694328707599414972714681369612509120398749250448724817496641264009485170502827101820480393026811562899648998377514513200720525985262122066721879587013691396753763493739279083684335097493099003366806326447645860793439967991572068411982155409332994367149367792555334469882627034789875396936286897588292309794949416598831783588883749892256480950718361274032448162064937214835785681521951979782834738204915388412976479632606360105186407144174772257925637890143567698541873578323561756718039766919856970201725877422098459375861343697403150341879825902544896976440495054987595945388853750677651926223472876435573989310592686045999559179557234424278170938499822623038325915861930652204166536096127172506110952512651653352081324116243630476441251954557324403694455081654284708932322094527770454286573395714252015829735447292707597736476830684292800973543869767345253176125085042507413491626124546330718788621631289949207301988183963844181121351313442630573545475777723373768314887439787552209483488180465684201543714483189684021541034778971151227109447945440383723802095049524328975636464102547657562857221492260729193220013573745054386884475121482266345114123514881257240308718885871003168894651856607200188948567719411566876660395847053233830274902360571858117505658192939024726349639199293975715091444137543210134414193614124954604103921191231137594832736329890136279353891433997601228719121582237297668697329479642840370561261769729813498979715680127404007710303679600897109021761634131955383622723059133595823685217443043899482670569654149194883923649132841954412415699996455775292612032560276316387733313179596559197073539166048608025383506679680596499482833213899499077617054791814768251625731074122371024525152316978289990031696018975090517262978890367901166071384039431799420502297011854278939250167338656029258366688095479377521687513059343012115426380446336637242394659079147902251564555400372294711702718754531461554215129872395644101871568060326561263143129052198917308140344429987159632659268231437380181833994026853055091946829271125662583348675549701254099478428552147102201041701756512020089984781719670817265512883676087632317840746350602716287349065408845738233284300774266899334803330244714479653340947540823685863184640685860838550862655449912495192902633041387821329472947401204115210025198846099749472409991380979909075114378053459419763123905397842404984633473934702893127869613590991885102495266561050799437868419626502868647802081632869674003700747816419527253618768457772768116668671283047426862155039535830802729160123440708185805233754488368735730057300209841940782085191177787529416953458332819344971692783232721773509910342185117019516728772992345285295090461762106291789557783903176327557051380299877396410862557082002643307464559383813511889584662267103091759981960979755629916516514938515508692968732313876405838226382791983023966826105806415748615559848986313643277147950539167967793366246024712087928084302859491888727739981536210437874237316649300981804804219296360138597677612073161172977127086406756672587980245296788570074277548234608410449478454742514777029368716839600659409148812378392155881697082856006745355982900776029087561425153030019706592141660475493265289112493901116217397980638544568648448477907770172096829294745365352738071029211053818365790494411028729816970594183871815961278979117862127723255292064496538001375685801288717434222088368978059396549551324813278430940795456319433675827100102754758538580121964793651171351240926416650772950338086790311687804122512113434285517295195374053776678262488632015305922687380932868508588153868629773440069344075331002515521207551257067361746005014375304009442762619010495199454980638148262045242925912403042165707669607494795603695338451754775560093630014904437190144301980212794182100666933468812654917849073975851204417167719921756318136867387661726778743438884076943249856864116237660859879162121652857287907915735346108339208178646716004328122762286376158824363979499489987950272938520091831991103338653820422540227544890921190025736934293451321334418796377834209498538877661195309098997035184720784246211795534267076325273980786554971625231674033371669545152926885354976852479362004201283956419222030850702534263684479960103011066047212721307253690816071577664413571626742632167831995846287102597903114045817047923931550647823110052177649653103269295475138425739683333787735055602585260410030400624353317752525660177717217073391692318111991768856669781620409666016916109284664237115715261638230281315459504937841642973572695123315541907741186598518139527441624482944129410011010858609836877643684137201274433886649605069144656875704875511545735093226353074637725943740902184029967496564008051004115192912196101032395879850654065259220635617410724067640851004594546783888405474387978517961157232541331993626380931151991218673518698476450499427966469008076341551688974198783054021295185877814511532142248035455554322342136556682851452110927899505727753279745811448865429791280907149759183423504346901878738283070797920667474600772120835427960937420635065809282052448550925276194821986538278061780398529115151117751837298363878789913012828218638835150209970351380907570037717185332340764129436815738227775586317802947464012745795995447128217765825374237427277873371582397447042067972587348698458681195871930410191670981022355960659452651760246544454719645027429796686918060997914329783141838072524594521599147916996117099147709159390248122468210298925950285903406153241016966343411174678803699532945798516681481796809782232786597980662489309998598227260477940607377957788113037284610401706020590269684966695276641246565568022752779267947951122378590613517957571012604310329017676992082486465082232989963664003940036913335955446346548768343115640754557829764080541954959488607629490034757792921161504872306888695818023130793203537733871258673610206720321556759300502310947573912270860568297634326618168453359350781034486085999313072282433604054822951797717270952484431594717440667462346826692679527436361732506055919616423847146460639275336466033593886159616191454793157791171857022062249828012204294797414114575972121646285796488140679466442570848982564069292815355838896357797691329426072673579785641786967662574274039966901820459935950913489571050917622004975836968533949111471851406474103077335311066856451120479637018851806623224193719411785081781238194679603268159137099031467214871052715566255369861385172318838544097253032961893156100756031558288726108589675233690190191900621186961237984333406027160332499349959919287845835514847409340683913853615720664573350280525422641578135489697426246885241878836623743894414187030726788598548973909844217179159035419028162709012480777414923092978422027881517859463274470466102679907148830998493550280424010135602782633622385854344486748776655136313889789754757949800317710107922829593206842607512861938623583182234230665916856613922284122338183145133206168733865278491162279542294583638088175947258720815624318915757179333351012612373299018673614664796980245998129053364405756187258187980553463559463283841259314788228860794613831851459732069465702844520343225293092641197238329458817449135549956634202166098025531605931386906510786930603385079128093170292243773020479168710796025962881260519261063907315127866797717832703154691174984522635976153493691310423841861879164692474615243872939465107569843087223527115179924585451929780047146478924297377979666799268432842956495386126954828515444519127372337446191678468493011527470610570846922738276851177605367175148886201628583566704743375407089587309761035965195189913091811018135911132077852189110719067907789948705214615002624710356069455213367254594166288482631911245006564634681473540626244069562643139042943558720291481708969247028552977568177560235114940291038330775145927515406985982901261470965706420967467664256099427112801248897398334622464239992355825101329257763633109352118366239496211883756913862985988559163385883220331658324274482562605191637838618804879735845818884561815662677190023318272095348560438345534217182413520149004180054313669212053266092063096587446784250119628454041867443134633357509174715674226977308617159745462638835590482814176177307843799823838098872702367030662515763403445809763128286165279768131908065604926948860983768620704474848763399820532093986070087496224307720050551844896285944461081375690502840253051691794030197876604584755999696491477839143151233796490197871742542245850175873636018827375521978802027338944185886075503617115546424063831503590729744077759590554313653666596961602049787319763583659900775542525641484425095099272029860651061603170284049592257513410144963023729426432849046961502356182294245675910162380810606259598249546841193878106569664794962462993861192587588355443495256663027752115442489457202359799257815533230349866950634074061130496585507596715196824698679931273394783008766586064047652316461165989619192423854054562667428252265796699752280219582049443953646817402167255893590006649567411659191693308403059928246458092016098417062291426362639551553890796396992494886948584682712166048853326628364548561321989336491374028937702410063410975530153196295573392074123352200643276484290124534470300798275456945032180326637852413216181732186948619137836642763015018725111538836125826312131885036518506496