Hatena::ブログ(Diary)

A Successful Failure このページをアンテナに追加 RSSフィード Twitter


2010年9月12日付でライブドアブログに引っ越しました。
新URLはhttp://blog.livedoor.jp/lunarmodule7/になります。
これからもどうぞよろしくお願い致します。



2009-08-31

サマーウォーズ:曜日の求め方とか2056桁の暗号とかの解説

本エントリは現在上映中の映画『サマーウォーズ』のネタバレを含む可能性があるので、未見の人は注意されたい。

主人公の健二が数学オリンピック代表候補であるという設定、最初に健二がShorのアルゴリズムに関する教科書を読んでいるのを見て、サイモン・シンが描き出した迫真のドキュメンタリー『フェルマーの最終定理 *1ばりの展開が待っているのかと思いきや、まともな数学的要素は皆無で肩すかしを食らってしまった。

気を取り直して、本エントリでは『サマーウォーズ』における数少ない数学的要素を取り上げたい。なお、無粋なツッコミは無用だという人は読まない方が良いだろう。

誕生日の曜日の求め方

さて、夏希先輩の誕生日、1992年7月19日は何曜日か。劇中で健二はモジュロ演算(mod)を用いて一瞬で日曜日だと回答していたが、その間にどのような演算がなされていたのか見てみよう。

曜日換算を実現するために、ツェラーの公式が知られている。求めたい日の年の千位と百位の連続の数字(例えば2310年ならば23)をJ、年の下2桁(年 mod 100)をK、月をm、日をq、曜日をhとする(ただし求めたい日の月が1月、2月の場合はそれぞれ前年の13月、14月とする)と、曜日は次で与えられる(x以下で最大の整数を ¥lfloor x ¥rfloorで表す)。

   h = ( q + ¥lfloor¥frac{(m+1)26}{10}¥rfloor + K + ¥lfloor¥frac{K}{4}¥rfloor+¥lfloor¥frac{J}{4}¥rfloor-2J)¥bmod7

modはモジュロ演算(剰余演算)であり、余りを求める演算子である。ここでは7で割った余りを求める事となるが、余りhが0なら土曜日、1なら日曜日、2なら月曜日、……、6なら金曜日となる。

夏希先輩の誕生日1992年7月19日を考える。J=19, K=92, m=7, q=19を代入すると、

   h = ( 19 + ¥lfloor¥frac{(7+1)26}{10}¥rfloor + 92 + ¥lfloor¥frac{92}{4}¥rfloor+¥lfloor¥frac{19}{4}¥rfloor-2*19)¥bmod7

   ¥hspace{10pt} = ( 19 + 20 + 92 + 23 + 4 - 38)¥bmod7

   ¥hspace{10pt} = 120¥bmod7

   ¥hspace{10pt} = 1

つまり夏希先輩の誕生日は日曜日だと言うことがわかる。演算量としては(筆者には当然できないが)暗算が可能な範囲だ。また、ツェラーの公式を知らなくても、特定の日の曜日を予め暗記しておけば、その日との差の日数を計算しmod 7を求めることで曜日を知ることもできる*2。実際、サヴァン症候群の患者であるキム・ピークは、生年月日を言えばそれが何曜日であるか即座に答えることができるという。そのため健二がこの程度の暗算能力を持っていてもおかしくはない。

健二が解いた暗号の謎

健二が最初に解いた暗号は2056桁の10進数の羅列であった*3。なぜ2048ではなく2056なのか理解に苦しむ*4が、2048bitと256bitを混ぜてしまったのだろうか。数字だけ並べられて"Solve Me"と言われても、普通は何を解くのかさっぱり分からないと思うが、健二がShorの因数分解アルゴリズムの教科書を見ていたことから、おそらく2056桁の数字をp*qの因数に分解するのだと思われる*5

現在インターネットで広く使われるRSA暗号においては、1024-4096bit(10進数で300-1000桁程度)の鍵が利用されている(RSA-640は2005年に解読されたため、最低でも1024bit以上を利用すべきである)。RSA暗号の安全性は素因数分解の困難性に依っており、素因数分解に成功すれば暗号を解くことができる。健二は2056桁の数字の素因数分解に成功したのだろうか?

CRYPTECが2006年度に発行した「CRYPTREC Report 2006 暗号技術監視委員会報告書」において1024bitRSA暗号の安全性についての調査を行っているが、そこでは当時の素因数分解世界記録保持者の一人であるKleinjung 博士に評価依頼し、1536bit, 2048bitの素因数分解についてAtholon64 2.2GHzのPCを基準にして計算時間を見積もっている*6

ここでRSA-2048は次のような数字だ。健二の携帯電話に送られてきたメールと同様に数字の羅列となっている。ただしたった617桁であり、健二が解いた2056桁の1/3に満たない。

RSA-2048 = 25195908475657893494027183240048398571429282126204032027777137836043662020
           70759555626401852588078440691829064124951508218929855914917618450280848912
           00728449926873928072877767359714183472702618963750149718246911650776133798
           59095700097330459748808428401797429100642458691817195118746121515172654632
           28221686998754918242243363725908514186546204357679842338718477444792073993
           42365848238242811981638150106748104516603773060562016196762561338441436038
           33904414952634432190114657544454178424020924616515723350778707749817125772
           46796292638635637328991215483143816789988504044536402352738195137863656439
           1212010397122822120720357

この数字を素因数分解するための計算時間見積もりを次のグラフに示す。

f:id:LM-7:20090831222201p:image

Athlon2.2GHzのPCを連続稼働させて2048bit(10進数で617桁)の因数分解にかかる時間はおおよそ10,000,000,000,000,000年*7。つまり10進数2056桁の因数分解は手計算では何兆年かかっても解けない。一晩で手計算なんてとんでもない。暗算なんてできっこない。鼻血をだすぐらいじゃ絶対無理である。

よい映画だけに、まともな科学考証がなされてないことが実に惜しい。誰かアドバイスできる人はいなかったのか。

関連アイテム

サマーウォーズ [Blu-ray]

サマーウォーズ [Blu-ray]

サマーウォーズ [DVD]

サマーウォーズ [DVD]

*1:『フェルマーの最終定理 』は実に面白い小説で、以前も取り上げたが、筆者のお気に入りである。当blogの常連さんなら嗜好的に読んで損はないはずだ。もっとも映画の内容的には、同じくサイモン・シンの『暗号解読〈上〉』『暗号解読 〈下巻〉』の方がマッチしている。本エントリで述べる公開鍵暗号方式にも言及があるし、エニグマ暗号機の解説などは知的好奇心をくすぐられる。こちらもオススメである。

*2:2000年1月1日が土曜日だと知っているとする。閏年以外は1年で1日、曜日がずれる(365 mod 7 = 1)ので1992年1月1日のオフセットは-8-2(1992年と1996年の2回の閏年分)で-10となる。1月3月5月7月8月10月12月の大の月は3日、曜日がずれ(31 mod 7 = 3)、4月6月9月11月は2日、曜日がずれる。2月は閏年以外は曜日がずれず、閏年には1日ずれる。とすると1992年9月1日のオフセットは-10+3+1+3+2+3+2で4となり、1日から19日まで18日分進めて22日。7で割ると1余るため、1992年7月19日は土曜日から1日進めて日曜日となるわけだ。さらに4月1日の曜日が7月1日の曜日と同じであり、また9月1日の曜日と12月1日の曜日が同じ事を知っていればいくつかの計算を省略することも可能だ。

*3コミック版によれば、最初に解いたのが2056桁、2回目以降は516桁らしい。

*4:仮に10進数の桁数が2のべき乗になっても意味はないが。

*5:それにしては健二が入力した答えが10進数ではなくアルファベットが混じっている点、公開鍵は流出するとは言わない点(そもそも公開するものだ)、そもそもShorのアルゴリズムは量子コンピュータで利用するものであり、通常のコンピュータや手計算、暗算で用いるものではない点など納得できない点が多い。そのため本エントリの考察は的外れで全然別の暗号である可能性ももちろん存在する。未読のガイドブックやノベライズ版に何らかの設定があるのだろうか。

*6T. Kleinjung, “Evaluation of Complexity of Mathematical Algorithms,” CRYPTREC technical report No.0601 in FY2006, 2007

*7:利用が推奨される暗号強度は世界最高のスーパーコンピュータの性能が今後10年20年のスパンで拡大したと仮定して、それでも実用的な時間で解けないように設定される。健二の解いた暗号が何であれ、手計算で一晩で解けるようなモノは決して暗号とは言わない。

ば 2009/09/02 19:13 健二が最初に解いた暗号は2056桁の10進数の羅列であった*3。
の時点で考証しても意味ないし、映画で伝えたいことは科学ではない。
もしあなたがブレーンスタッフに居たら、映画はきっと盛り上がりの無いつまらないものになっていたろう。

MasaHeroMasaHero 2009/09/02 20:22 >>健二が解いた暗号
劇場版を見る限りアルファベットが混じっているどころか、英数字のパスコードそのもののように見えます。二回目以降も解をそのままパスとして入力しているようにしか見えません。つまり健二は既知暗号文攻撃を行っていたのでしょう。で、
きっとラブマシーン側は健二たちが解いたパスを使い管理者権限を奪った後は選択平文攻撃で他のアカウントのパスを解いていったのでしょう。
暗号化アルゴリズムを知らずに既知暗号文攻撃をするのは何というか無謀すぎるので、きっと暗号化アルゴリズムは世界的に見て一つしかないかある一つのみが絶大なシェアを誇り、それが広く一般に既知な世界なのでしょう。それでいて既知暗号文攻撃に対して頑強でないなんて、なんと危険な世界だ。
あの世界には暗号化アルゴリズムは一種しか存在しないか、一種のみが絶大なシェアを持ち、健二が行っていたのが既知暗号文攻撃で、その暗号化アルゴリズムが非常にバカなものだという仮定の下では暗算で解ける可能性があります。
あと、暗算で解いているとき頭から順に一文字一文字解けているようなので非常にブロック長の短いブロック暗号なのでしょう。下手するとブロック長は一文字分なのかもしれません。

LM-7LM-7 2009/09/03 07:31 MasaHero様
既知暗号文攻撃が可能な状況だと、暗号文をさらに別の手段で暗号化して外部に漏らさないように使わなければなりませんね(笑)。pとqの2つの素数をシードとして既知の換算表かハッシュアルゴリズムで鍵生成するというのはことも考えられなくは無いとおもうのですが(なぜか暗算が可能な計算量で生成できなければなりませんが)、いろいろとボロが出てきそうです。

ば様
あなたにとっては意味のないことかもしれませんね。意味のあることしかなしないという信条をお持ちのようですが、自らの主観に基づく誹謗中傷を赤の他人のblogに書くことはきっとあなたにとって意味があることなのでしょうね。この映画で伝えたいことが科学だなんてどこの誰が言いました?

T-AT-A 2009/09/06 00:28 頭の中で既存のアルゴリズムに沿った計算をやっていたとは描写されてなかったわけで、ラマヌジャンのごとく直感で何かが、この場合は素因数が分かる才能の持ち主で、神でやってたのは検算だった、とか。

LM-7LM-7 2009/09/07 07:39 T-A様
2056桁の数字の因数分解を直感で解く特異な才能の持ち主が全世界で55人もいるとなるとセキュリティ関係者は真っ青ですね。脳の中に量子コンピュータが生成された特異個体という可能性もありますが、Shorのアルゴリズムだと正しい答えが得られるまでO(logN^2)ほど繰り返す必要があるので、やっぱりそれも厳しそうかなと。まあ、世界最高レベルの暗号が1日で解けてしまうと言うところに最大の論理矛盾があるわけで、何らかの脆弱性でも見つけたのでしょうか。

kickkick 2009/09/08 18:22 面白いですね!LM-7さんのブログは画像補整の記事を見つけてから
ブクマしてましたが、まさかサマーウォーズのことが記事に上がるとは
思っても見ませんでした(笑)
数学的なことやLM-7さんが書かれてることはまっっったく解りませんが、
専門知識を持ってると「おかしいな?」と感じる場面があるのはどんな映画でも同じですね。

LM-7LM-7 2009/09/09 06:47 kick様
専門知識というほどのものでもない(実際専門じゃない)のですが、
ググってみると特にこうしたツッコミを丁寧に行っている先行例が見あたらなかったので、
取り上げてみました。
「サマーウォーズ 暗号」で検索してくる人が多いようで、
映画をみてあれ?これはどうなってるんだろう?とちょっと不思議に思った人が、
ああ背景にはこんな技術があるんだと気付くきっかけになれば嬉しいですね。

デューイデューイ 2009/09/11 17:57 サマーウォーズの内容についてですが、僕の聞き間違いじゃなければ、夏希の誕生日は「平成14年」です。1992年ではなく2002年。2002年生まれの子が高校生ということは、物語の舞台は2019年の夏です。つまり未来のことなんです。だから現代では「10進数2056桁の因数分解は手計算では何兆年かかっても解けない」としても、10年後の未来ならわかりませんよね?(まぁ、無理っぽい気はしますw

円樹円樹 2009/09/11 18:40 初めまして。
ひょんなことから辿り着いたサイトではありましたが、
気になる内容であったため投稿させていただきます。
私の勝手な憶測で申し訳ないんですが…
ずばり、暗号の件は「健二の能力がどのようなものであるか」を視覚的に分かりやすく提示したに過ぎないものなのではないか?

劇中の夏希もそうですが、正直一般人には
「数学オリンピックの日本代表ってどれくらいすごいの?」
というのがわからないと思うんですよね(かくいう私もそうですが…)
それを、どうしたら視聴者にわかりやすく伝えることができるか。
また、後に来る最終決戦での山場への伏線になるか。
ということを考えた結果が、「普通なら到底不可能な量の計算式を一夜で解く」という描写だったのではないか、と。
正直な話、「手計算で一晩で解けるようなものは暗号ではない」最もだと思います。
そんな脆弱なセキュリティじゃ困っちゃいますからね。(そもそも暗号が流出してしまっている時点でたかが知れているというか…)
しかし、演出的な面から見てみれば、一目で健二のすごさが、
また、圧倒的桁数からOZのセキュリティの強固さが(だから流出してる時点dゲフンゲフン)
視覚的にわかりやすく視聴者に伝わるなど、様々なメリットがあったと言えると思います。
(他にも「55人もいる」や、「最後の文字を間違える」などから、
健二の持つ能力が「超人的ではあるが異能ではない」ことや、
健二のうっかりな性格がわかる、などなど…)

確かに、科学的考証はそれほどなされてはいないのかもしれませんが、
それ以外にも色々"トンデモ"がある映画ですからね(笑)
そういうのも全部ひっくるめて、「サマーウォーズ」なんだと思います。
LM-7さんの解説、考察自体はとても興味深いものでした。
こういうことを知ってから映画を見ると、また違う発見があるのでしょうね。
長文・乱文失礼いたしました。

円樹円樹 2009/09/11 18:57 追記ではありますが

そもそもが「OZ」という仮想世界が存在する世界での話なので、
現実にはない暗号の生成方法や解法が存在してもおかしくはないんですよねぇ…。
真相は制作スタッフにしかわからない、ってとこですかね。

>デューイさん
私も映画での記憶は曖昧ですが…
小説版、漫画版ともに平成4年になってますね。
両方とも間違ってる、ということはないでしょう。
おそらく平成4年であっていると思います。
まぁ、たとえ未来であっても、
手計算では「計算するのが人間である以上」(また、暗算である以上)
人間自体の脳の処理性能が上がってないと無理かと…。
簡単に言えば、(未来の)コンピュータは簡単に難解な暗号を解くことができた。
じゃあ同じことが人間に(機器を使わず)できるのか? ということですね。
可能だとすれば、コンピュータの処理性能に(一部の)人間が追いついた(追いつける)時代になったというところでしょうか。
つまらないところを突っ込んですみません…。

デューイデューイ 2009/09/12 01:39 >円樹さん
ご指摘ありがとうございました。
聞き間違いだったようですね。。お恥ずかしい限りです。

>LM-7さん
サマーウォーズに関しては、OZみたいなバーチャルコミュニティサイト(?)が
いかにも実在しそうで作品全体にリアリティを与えていたからこそ、
LM-7さんは「ケンジの能力が非現実的な設定であったのが残念」とおっしゃったのでしょう。
その気持ちはわかります。決して作品を否定しているのではないと感じます。

僕自身「そんな数列の暗号解ける人間なんかいるわけないだろ。。」と思って
見てたので、大半の人はケンジの能力設定にリアリティを求めないでしょうね。
まぁ、アニメーションですから。

フェルマーの定理とモジュロ演算の解説、すごくわかりやすかったです。
ありがとうございました。

LM-7LM-7 2009/09/12 08:47 デューイ様
2002年7月19日は金曜日ですし、1992年であってると思いますよ。
素因数分解ならば10年たっても無理なのは円樹さんご指摘の通りです。
お役に立てたようで幸いです。

円樹様
数学オリンピック云々がキャラクタの特徴付けを目的とした描画手法であることは
理解しています。
2056桁という変な数字も現実の暗号とは違うんだよとのメッセージなのでしょう。
それでももう少し上手く嘘をついて欲しかった、という願いです。

ネッシーネッシー 2009/10/08 22:09 デューイさん。
この話は平成22年を舞台にしていますよ。
夏樹と健二が上田駅で話している場面で『上田わっしょい 平成22年7月31日 開催』と書いてあります。

名無し名無し 2009/10/10 18:36 サヴァン症候群について一言。右脳と左脳の優位性が入れ替わって「脳の使い方が違う人たち」なのですが、
彼らは「脳を働かせるように意識するだけ」で数字の羅列が浮かんできて分かるようです。
姉貴の子供が実際出来ます。成長とともに脳の使い方が変わってきて最近調子悪いそうですが...
ドキュメンタリーでは、寝る前に人口統計表を読んだり? 数字の羅列を眺めていると
癒されるそうです。
計算はしてないとも、明言しています。

名無し名無し 2009/10/10 18:46 さらに蛇足ですが、暗算能力に関して言えば、フォン・ノイマンが有名では?
wiki より
> ノイマンは長崎に投下されたプルトニウム型原子爆弾ファット・マンのための爆縮レンズ
> の開発を担当し、 1940年代に爆轟波面の構造に関するZND理論を確立し、この理論を元に
> 10ヶ月に渡る数値解析によって 爆薬を32面体に配置することによって原子爆弾が実際に
> 実現できることを示した。

YOSIYOSI 2009/10/12 01:48 >>本エントリの考察は的外れで全然別の暗号である可能性ももちろん存在する。

まさにあなたの言う通りでしょう
現実世界の暗号システムをフィクション作品内で解く方法が示せるのならば、現実世界でも解かれちゃいますからね。
結局、リアリティを出すために実際の暗号システムっぽい雰囲気を出しただけ。それだけのことなんですよね。そのリアリティが夏休みアニメ映画のレベルというだけ。
ついでに専門知識のある人間が得意げにSF作品に突っ込みを入れるのもよくあることですよね。

なんしぃなんしぃ 2009/10/16 00:34 現実世界の2048にフィクション(お遊び)として8を足しただけでは。サマーウォーズの公開って8月だっけ。

カルスカルス 2009/10/25 18:28 「んなこたぁどうでも良いんだよ」だと思いますよ。面白ければ。
そもそもファンタジーでしょこれ?
貴方が意味があって興ざめしても、意味を感じない人々が多いからヒットしたわけでしょう。
自分で述べている通り無粋な話しなんでしょう。
俺は面白かったけどね>こちらの文章

みずいけみずいけ 2009/11/03 12:03 私は「んなことより、映画がおもしろければいいじゃん」と思いつつ、かつ、こちらの分析もまた(嫌みではなく本当に)面白いなあ。と、2度、楽しめましたよ。
ははは。私が一番、しあわせでしょ?(^^)

4eaAQ54eaAQ5 2009/11/18 02:41 どうっでも良いならここに触れる必要すらないのだがいちいち食いついてくる理由もない。
興味を持って調べた人間と、ただ面白けりゃ良いって人間に別れただけ。
後者の方が幸せ者、色々な意味でな。

フィクション考証の意味フィクション考証の意味 2009/11/29 07:15 フィクション作品の考察を謳う人はたびたび見かけますが、
9割方が同じミスをしています。
それは作中で起こったことが事実であるという前提条件を考慮していないことです。

例えるなら、
魔法使いが出てくるフィクション作品に対して、魔法が存在するからこの作品は矛盾している!とか
サマーウォーズに対して、OZなんてものは存在しないからこの作品は矛盾している!なんて
言っているようなものです。

作中の事象を真であると仮定した上で、事象同士の矛盾を証明できたときに初めて作品にケチをつけられるでしょう。

けれどあなたの考察はこれに値しません。

もし「10進数2056桁の因数分解は手計算では何兆年かかっても解けない。」ならば、
健二が解いた計算は因数分解ではないのでしょう。
これで作中の矛盾は解消されます。

そもそもフィクションの考察とは、
辻褄が合う舞台裏・設定を創作することになるのですよ。

それに考察という思考ゲームを楽しむにしても、
他人の作品を貶める文章より、作品のクオリティを補うような文章を書いたほうが建設的でしょう。

ちょんまがりちょんまがり 2009/12/08 00:33 この考察、結構面白く読ませて頂きました。
ですが、『ば』さんへのレスで、ちょっとがっかり。

私個人的には、『フィクション考証の意味』さんの意見が一番しっくりきました。
この映画の話が“完全実録!真実のドキュメンタリー!”とかだったらツッコミまくりですが、
まぁ、“そういう世界なのでそういう前提で”ってことで楽しめればいいんじゃないかと。
その中で、冒頭のモジュロ演算の件はこの現実世界と『たまたま』同じだった、と。
そもそも、SF作品に登場するあらゆる事象を現実世界の物と同等に考証していけば、
そりゃあツッコミどころ満載な作品しかなくなりますよw^^;
まぁ、その辺りも解った上でもうちょいと巧く嘘をついてよ…ってことなのでしょうが…
個人的には、嘘具合はこんなもんで十分すぎると思いますよ。
インデペンデンスデなんとかに比べたら可愛いもんじゃないですかw

駄作駄作 2009/12/11 02:10 『なお、無粋なツッコミは無用だという人は読まない方が良いだろう』
って書いてあるのを考えれば「ば」へのレスは妥当だろ。

>これで作中の矛盾は解消されます
いやそれはない。
「世界最高レベルの暗号」が「高校生でも一晩で解けてしまう」ことは矛盾ではないのかと。

そもそもここで言ってるのは「矛盾している」ってことじゃなくて「作りこみが甘い」ってことじゃないのかと。
わざわざ「数学」をもってきたんだからもう少し生かせよと。
これなら別に数学じゃなくても物理学でも考古学でも超能力でも何でもよかった。

ストーリを観ても主要キャラですら薄っぺらな設定。
笑わせる要素、泣かせる要素ともに中途半端で描写が弱い。
それに付けてのこのリアリティの無さ。
中途半端にリアリティを求めてるからさらに悪い。

この作品で評価できるのは絵とテンポの良さ。それだけだ。

k1k1 2010/03/03 09:08 LM-7さん、はじめまして。
bul-rayでもう一度鑑賞し、
劇中で健二が暗号解読について興味をもったので
検索した結果、このblogに行き着きました。
私の興味を満たすのに充分な内容で感謝しております。

私も少し意見を述べさせて頂くと、
ドラマ、映画、アニメこれら創作物はほとんどが
創った人の願望です。
現実にはありえないけどこうであったらいいなという。

では、
現実ではどうなのかと考えた場合に、
こういう方法があると示し下さった
LM-7さんのblogはとても参考になりました。

ただ、別の方に対してですが
作品自体を現実との矛盾をついて駄作などと
評価するのはどうかと思います。
アニメーションとしてみれば充分満足できる内容で、
ストーリーもなかなか引き込まれるものがありました。
特に終盤のLOVEマシンの描写などはすごいなと個人的には思いました。
少し人物の腕の長さ(作画)に違和感を感じたりしましたが、
それでも面白いと思えました。

作品をよくしたいという思いからの酷評でしたら、
スタッフが直接目に出来る形で意見すべきなのではないでしょうか?
そうでないなら、自分の胸に留めて置くべきではないのですか?
SWが好きで見つけたblogに批判的な内容があると少し不快です。

HexaHexa 2010/03/11 22:06 リーマン予想が証明されて、数学が発展すれば素因数分解も可能かもしれませんね。

0x0A0x0A 2010/03/18 23:29 総合的に良い作品だけに、丁寧に描かれた芝居や人間模様や田舎の風景と、数学的、技術的なフィクションとのバランスが、その手のエンジニアや研究者が見てしまうと、回数を重ねるほど「あー、、、惜しい。。。」という想いが鮮明になってくるという、理系なことを生業にしている人達に切ないジレンマを感じさせる愛すべき作品です。というのがエンジニアをやっている自分の感想です。

映画で、フィクションで、アニメーションで、それはつまり矛盾の無いように作品を作ることが目的ではない。作品によって多少は意識する必要はあるけれども、あえて矛盾をはらんだままにすることは間違いじゃない。と私は思います。

逆にそれは、観客が不思議に思ったり矛盾を感じた部分に、あれこれ自由に想いを巡らせることを作品が否定していないということだと思います。

だから私は LM-7 さんの謎解きを興味深く拝見できましたし、実に惜しいという気持ちにも共感を覚えます。このブログのエントリーを見つける事ができて、良かったと思います。
そして、それは私がサマーウォーズを嫌いになったり、作品を否定する理由にはなりません。

そういうものじゃないかなと思います。

R10R10 2010/03/27 23:35 2056桁は2048+8の意味かもしれませんね最初の8つが鍵とか。
その8つの意味がわかると後の2048桁はがんばれば暗算で解ける代物かも。
それに2056桁の暗号がセキュリティーのすべてとは限らないわけで、
ラブマシーンが最後の暗号部分以外は解析していたとか考えられますね。

科学考証は意外とされてるかもしれませんよ。
映画自体は面白かったので別にどうでもいいんですが。

99 2010/04/08 06:05 数学的見地からの考証が見られて助かりました。
システムの知識はあるものの文系だと数学的見地で切り込まれると、普通に考えてありえないとは思いつつも、
数学で暗号が解けるような方法があるのかと気になって調べた結果この考証があり知的好奇心が満たされました。

なにやら責めるような意見も出ているようですが、私はこの記事があることに感謝しています。知的好奇心を満たしたい人が読んで満足するための記事だと思いますので、考証に興味のない人がわざわざレスをつけているのが不思議でなりません。

明確な罵言でない限り意見を述べるのは自由であって欲しいと思っていますから、考証に興味がない人達が責める様な事を言うのは自由だと思います。それを私がノイズだと判断するのも自由です。LM-7さんも自由になさればよいと思います。

coro_1729coro_1729 2010/04/30 17:42 RSA暗号だと仮定すると、公開鍵のペアである暗号化指数と法が公開されていて、それにプラスして暗号文があるはずです。
この仮定では暗号文は公開されておらず、法nのみが公開されていることになっています。これでnを素因数分解できたとしても最も重要な暗号文自体が無いのですから得られる情報はなにもないのではないでしょうか。
この問題は恐らくエニグマのような対称暗号で暗号化された暗号文だと仮定するするのがいいのではないでしょうか。
そうすれば、暗号文だけが公開されている意味が分かります。
Shorのアルゴリズム、思わせぶりですねw

filmfilm 2010/06/07 11:52 サマーウォーズを取り上げたブログは凄くドロドロするという、悲しくも面白い現象が起こってますね。
まあ自分は児童文学と映画的物語が専門なので、数学の事はよくわかりませんが、大変面白い考察だと思いました。それだけに、前のめりなレスのやり取りが残念でなりません。
映画はそれぞれが、それぞれの興味範囲を駆使して解釈したり納得したり。はたまた思考の迷宮に陥ってみたりするものと考えています。そして、その映画を作る制作側は己の全力をもって観客に挑戦しています。そして、その作品の全ての責任を監督が負っているのです。叩かれるのが仕事と言っても過言ではありません。(映画が売れるか売れないかの責任はプロデューサーが負うべきですが)
なので、盛大に突っ込んで構わないと思います。ここおかしいじゃん!と反論ののろしを上げるのも結構でしょう。映画とはそういう楽しみ方もできるものです。

とは言っても、監督も叩かれ疲れる時があるはずです。おかしな点を発見しても罵詈雑言をあびせず、ちゃんと調べろよなー設定どーなってんだよー。と可愛くなじってあげて下さい。

あと、自分はこの作品が好きなんだ!なんでこんなこと書いてるんだよ!不愉快だ!なんて、阿呆な発言は心の中でするべきかと。逆もしかりですが。

最後に真理を一言。なつき先輩は最高に可愛い!!!

失礼しましたw

solveMesolveMe 2010/07/25 16:14 81438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021

gg 2010/08/07 02:58 つーかフィクションなんだから、あんな一瞬の暗算で解けるハズが無いとか言ってどうすんの?
そんなこと言ってたらオズみたいな世界なんて作れるはずが無いとか
なんとでもいえるわ

totoronokitotoronoki 2010/08/07 10:10 この作品って、物語のキーが主人公の計算力になってるのに、アニメだから掘り下げもせず、短絡的な映像表現でお茶を濁してるんだよね。
ノベライズなら違うかな? と思ったけど、こっちも掘り下げはなかった。

設定の突き詰めが甘いと思う。
まぁ、設定有りきで物語を書き始める方法のが大半だと思うけどさ、それを絶対的なものにしちゃうと上手くいかないこともあるんだよな。
「上手くいかない部分」ってのが物語の隅っこの部分なら大した問題じゃないけど、このアニメの場合はクライマックスの部分だから目立つよ。

ほげほげ 2010/08/07 12:15 地上波で放送があったこともあってここに辿り着きました。
凄く参考になりました!ありがとう!!

アニメはアニメ、科学考証は科学考証なんだけど、
それだけトンでもない計算なんだなってことがここで分かったのが良かった!

oo 2010/08/07 15:07 昨日テレビで見て、このエントリを面白く読ませていただきました。
主人公が電車の中で読んでいた数学の記事が分かってよかったです。
数学オリンピックなども出てきて、数学ファンとしてはニヤリとさせられ、
こちらのエントリで薀蓄間違いを解説いただき、さらに楽しめました。

Ozというバーチャル環境もなかなか魅力的でしたし。

個人的に笑えたのは、衛星が地球に再突入している最中にコントロールできることと、
その衛星が地上にアレだけのダメージを与えてしまう、という設定でした。

あ 2010/08/07 18:52 フィクションで「主人公が実はすげえ!」っていう演出のために、「誰も出来ないこんな事が高校生なのに出来てすげえ!」って設定にしたのに、「そんなすげえこと現実に出来るわけ無いだろ」って言っちゃうのはがっかりだね。
記事自体は面白かったけど、コメントはブラックジャック読んだリアル医者がキレてるような感じでダサい

翔 2010/08/07 19:00 内容以前に言葉使いや態度から
どっちがおかしいか明白に出てるこの流れ
別に面白くなかったとも言ってなければ楽しめたって言ってる人たちの人格を否定してるわけでもないから
そこんとこ早く気づいてください

よしやすよしやす 2010/08/07 19:50 >>翔
同感。

『無粋なツッコミ』と断った上で
『よい映画』とも評しているのに
わざわざネガティブに受け取る人たちの多さに驚く。

いてえいてえ 2010/08/08 15:39 フィクションです。
現実性求めるものじゃないです。

ジョンジョン 2010/08/08 16:28 私は数学とか暗号は全然知らないけど、それでもラストの超人的な演算シーンにはがっかりしましたよ。
画面には膨大な数字の羅列が表示されてるのに、わずか数秒で解けるとかどんだけ脆弱なセキュリティなんだよwwwって。
掘り下げが甘いというのには同意ですね。ずぶの素人ですら違和感を感じるんだから。

っていうかさっきから「フィクションだからこういう考察は無粋」とか言ってるアホはなんなの?
「科学的な視点からみた場合、この映画のこういうシーンの作りこみの甘さが目立つ」って言ってるのに対して「科学的な視点からみる事自体が間違い」なんて言っても仕方ないでしょ。
これが「地質学的視点」でも「心理学的視点」でも「経済学的視点」でもなんでも良いけど、とにかく多角的な視点から考察するのは映画の醍醐味の一つなのに、わざわざ馬鹿なコメント残す暇があったら勉強でもしてろよ、と思うね。

sksk 2010/08/10 01:27 携帯に送られてきた暗号に関してはアルゴリズム云々以前に、意味のある英文を暗号に利用してる点(明らかに暗号強度下げてる)と、それにも関わらず”knowledge”を”knowledgq”と間違える主人公に違和感を感じるね。

momomomo 2010/08/10 15:01 曜日のやつ解けないです〜〜
もう少し分かりやすくできないですか・・・??
なんか途中で割り切れないのに整数になったり・・・
modが理解できないし〜〜〜〜・・・・・
誰か〜〜なにかおねがいします・・・・ちなみに中学生です・・。

king-kazmaking-kazma 2010/08/11 13:51 よく分からない・・・。もうちょっと分かりやすくしてほしい。

king-kazmaking-kazma 2010/08/11 13:51 よく分からない・・・。もうちょっと分かりやすくしてほしい。

dadadada 2010/08/12 18:16 翔さん よしやすさんに同感。
「ただ面白いでいい」といってる人は映画や文をどう見ているのだろうか?不思議だ。

うほほーうほほー 2010/08/13 14:58 the magic words are
squeamish ossifrage
To know is to know that
you know nothing That
is the true meaning of
knowledge
でしたね健二のメールに送られてきた暗号の答えは。

うほほーうほほー 2010/08/13 14:59 the magic words are
squeamish ossifrage
To know is to know that
you know nothing That
is the true meaning of
knowledge
でしたね健二のメールに送られてきた暗号の答えは。

nanonano 2010/08/13 16:22 理系の人間はこういう科学的議論が大好きですよね。マジンガーZのロケットパンチやドラえもんのタケコプターについても面白がって物理学で矛盾を検証したりするしwww
頭の体操みたいなもので、大学の研究室に入ればこんなことばかり考えている人は山ほどいます。あまり真剣にアニメーションを馬鹿にしてるととらないほうがいいと思いますよ。

ゴロゴロゴロゴロ 2010/08/14 17:29 金曜ロードショーで見て、モジュロ演算について知りたくなり、偶然このブログにたどり着いたわけですが、
とても参考になりました。ありがとうございます。ただ、私のようなバカには難しい点もいくつか・・・
バカ用の説明って、やっぱ無理ですかね・・・?

こづっちこづっち 2010/08/16 20:21 のせてくださってどうもありがとう

あのよう。あのよう。 2010/08/17 01:09 あんたらいろいろコメントぶってるけど、なんか意味わかんねえんだよ。とりあえず、5歳の子供にわかるくらいの言葉と文章で説明してくれや。まあ、オレが好きな登場人物はあのバカ警官かな。あれこそ必要な存在だよ。

まだ続くまだ続く 2010/08/17 16:15 ロードショーではじめてみました。
今はどうか知りませんが、
私が数学オリンピック予選うけたときは
100人に残れたものの合宿には参加できない程度の数学力でした。
夏休み予定がないってことは主人公も同じレベルかな・・・
と思いつつ
もし同じレベルなら日本にはほぼ毎年コンスタントに
50人くらいづつ同程度の数学力の人間が生まれてて
世界では何人いることか・・・・
きっとアレです。
現実の数学オリンピックとは
名前が一緒で違うものなんだと勝手に解釈しました

あらら〜あらら〜 2010/08/20 17:42 解けね〜〜〜〜〜ww

RR 2010/08/21 01:38

まあ簡単に言えば、
割り切れないものは余りを捨てて考えるってことでしょう

1992年 7月27日 は月曜日です。


カッコの中だけ計算すると、
27+{(7+1)×26}÷10+92+92÷4+19÷4-2×19
=27+(20余り8)+92+23+4余り3-38
このとき余りは考えずに切っちゃって
=112

あれ....
おかしくなったけどごめんね。
後は算数できる人におまかせするね。

h=112mod7
112÷7=

R 2R 2 2010/08/21 01:45
まあ簡単に言えば、
割り切れないものは余りを捨てて考えるってことでしょう

1992年 7月27日 は月曜日です。


カッコの中だけ計算すると、
27+{(7+1)×26}÷10+92+92÷4+19÷4-2×19
=27+(20余り8)+92+23+4余り3-38
このとき余りは考えずに切っちゃって
=128

よって
h=128mod7
128÷7=18余り2

このときの余り2

つまり月曜日だね。


上で112になってるけど
ただの足し算ミスしただけやから。

よっちよっち 2010/08/21 03:03 もー何回見たことか・・・
OZみたいな世界が有ってもいいなぁ〜と思うけど、何でもできると引き籠りが増えそうな気が・・・
けれど、この作品の魅力は血族の絆だったり、人と人のコミュニケーションだったり、ハイテク技術が当たり前の日常で、あきらめない気持ちだったり、自分には眩しく映りました。 大変面白かったマイベストです!!

TUNIVTUNIV 2010/08/24 03:02 世界最高の暗号が一晩で50人以上に解かれるってのが自分もどうにも気になってました。
コンピューターで総当たりに解くような類ではないのかと思いつつも、一晩で50人以上に解かれるのはいくらなんでも…
核ミサイルまで自由にできるシステムがそんな脆弱なセキュリティなのか、と多少コンピュターや暗号をかじったことがある人ならまず間違いなく頭をひねってしまいますよね。
細かいところを揚げ足を取るなと息巻いてるかたもいらっしゃったみたいですが
、細かい設定を検証するというのも、また映画の一つの楽しみかただと思います。

RathRath 2010/08/25 04:28 例のロードショウで(ry
なんかもめてるみたいなのでちょっと一言・・・・
実は何かアイテムを使ってたとか・・・?
あ、いえ・・・気にしないで下さい
皆さん、仲良くね!

anonymousanonymous 2010/09/19 01:23 細かい所で揚げ足取ると、コレ系はきりが無いですよw
かくいう自分も「2056桁」という数字の不自然さで検索して辿りつたクチですが。

けどこういう「現実」と「フィクション」の隙間を埋める記事は、誰もが書ける記事じゃないと思います。
残念ながら数式を読める教養が無いのが、一番くやしいですが。。。w

Love MachineLove Machine 2010/09/29 16:49 人間が解けるならラブマシーンでも解けるでしょうね。
筋書きを適当に書き換えるなら、

【メールの暗号に関して】
  ラブマシーンは既に暗号を解いていた
→ ラブマシーンは自身の脅威になりそうな(暗号解析能力をもつ)人間を検索
→ ぎりぎり解けそうな暗号文を脅威になりそうな人間に送りつける
→ 能力を検証しつつアバターを奪うことでとりあえずの脅威を取り除く
→ 暗号を解いた人間はラブマシーンに行動をマークされ、仮アバターも取得できないようになる
→ 健二は誤解答したので仮アバターを取得できた

【管理棟の暗号に関して】
  ラブマシーンは遊び半分で管理棟の暗号をぎりぎり解けそうな暗号文にする
→ 本来解ける人間は軒並みアバターを奪っているので解かれるはずはなかった
→ しかし今度は健二がきちんと解いたので管理棟のパスを解除される

【衛星GPSの暗号に関して】
  ラブマシーンはとりあえず嫌がらせをしようと考えた
→ 短時間で解ける、思わず解いてしまうような暗号を設定
→ 健二はまんまと餌にくいついて暗号を何度も解き、避難できなくなる
→ ついでに他の家族まで餌に食いついて最高にHAPPYなラブマシーン
→ と思ったら予想外に解体作業が進んでいてやられてしまう
→ 余裕ぶっこいてたラブマシーンの暗号を鼻血出しながら健二が解く

ってな感じでラブマシーンの遊び心で全て片付ければなんとかなる!
…わけないよねー

べんべんべんべん 2010/11/01 05:12 なんか荒れてますね
意味ある意味無いは人それぞれですから……
一般に言って
理系は意味無くてもやります
工学系は意味無いとやりません(←私がそうですw)
文系はそもそも興味が沸かないでしょうw

私の考えは,暗号の答えが平叙文であることから,あの2056桁の数字を何桁かで区切り
何らかの変換(例えば26足してmod53してASCIIっぽい感じで文字(英字+空白)に変換)
により解読結果とするという考えです
で,この何らかの変換後の結果が意味ある文章となるために人間が必要だったって
ことじゃ無いでしょうか?(最後のknowledge間違えたのは打ち間違え?)
人工知能は所詮コンピュータで言語処理能力は小学生以下でそのせいで詰が解けない
のかなぁと思ってみてました

で,その過程まで持ってくのが非常に大変な作業でそれをあの人工知能君が世界中の
コンピュータを使って計算したと考えればまぁなんとなく理屈はつきます
でもまぁいずれにしても暗号が平叙文とか暗号の安全性が低過ぎて驚きますが……


最後に数学オリンピックについて
はっきりって正直,それほど難しくないですw世界の素晴しい数学者とは到底肩を
並べられるものではないものです
私は出れない年齢(高専三年)になってしったのですが,試しに過去問を
何年分かやりました
そしたら意外に平均7−8割くらいは解けてしまってなんだかなぁと
ただ問題自体はとても面白かったです

遊馬遊馬 2010/11/29 15:01 この健二はなぜこんなに早く解けたかというと、過去に同じ問題があったが、それを覚えているからか、素因数分解やモジュロ演算がとてつもなく得意な少年であっただろうと僕は考えている。

遊馬遊馬 2010/11/29 15:12 曜日換算は、間違いなく一瞬ではないと思います。
3秒です。
おばあさんの生年を大正をつけて一瞬でいえるぐらいなのです。
夏希先輩の生年ぐらい年の差だけで分からないでしょうか?
このことから、健二は誕生日を聞いてから考えた。
その間は3秒ほどのはずです。

shimatanirenshimataniren 2011/07/31 16:52 こんな計算頭に入らんwww
計算しようとしてもwwwwwwwwwww目wがw回wるwだwけwwwwwwwwwww

infernobazookainfernobazooka 2011/08/08 21:57 うわぁ

s 2011/09/09 00:29 (他の人のコメント全然見ずに書き込みしてますゴメン)
2056桁の暗号(因数分解)について。
「特殊な条件に当てはまる数値については、非常に単時間で因数の特定が出来る」
「その特殊な条件を、たまたま主人公が独自に発見していた」
という可能性があるかも、と、想像するとちょっと楽しい。
数学に関しては、年齢に関係なく、ときにバケモノ的な才能が輩出するし。
(とは言っても、2000桁超を相手に、1晩のうちに、紙と鉛筆で、ってのは、
 なかなかにファンタジーですよね。でも、いろいろ想像がふくらんで楽しいです)

数学オンチ数学オンチ 2011/10/02 23:11 ひとつの解釈ですが・・・
ラブマシーンはゲーム好きなんですよ。計算能力は人間の遥かに上のはずです。
2056桁の暗号がどのようなアルゴリズムなのか分かりませんが、
回答に達するには何段階かのステップが存在するか
あるいはいくつかの部分に分割可能で、そのひとつを
”このくらい出来るかね人類諸君”と全世界にばら撒いた。
当然ラブマシーンは最終回答を知っていて”一晩のうちに解いちまった”のは
実はこいつに他ならない。
ゲームを成立させるには一定以上のレベルの参加者が食いついてくる必要があるから、この先ゲームを開始するかどうか、面白いゲームになるかどうかの
指標にしたのではないのでしょうか。
実際制御システムはメチャクチャに混乱させているのに、
通信システムはいじっていない。電話は普通にかけれれるし、テレビ中継もしかり。
人類側にわざと反撃の余地を持たせて楽しんでいるように思えます。
それでもある程度の知識を持っている観客を興ざめさせてしまうのは
致し方ありません。この敷居を高くすると大部分の”普通”の何の事か分からないけど、すごいのは阿と無く分かるという観客を逃してしまいます。興行的に失敗します。
その方面の専門家も突っ込みつつ見ると言う楽しみ方がが出来ます。
LM-7さんがまさにそうでしょう。
個人的には映画マトリックスの冒頭で人類を生かしておく理由が、
エネルギーを得るためという設定にドン引きしましたが、
その後は娯楽と割り切って楽しみました。
それに比べれば設定のクオリティは、個人的にはずっと上でした。

koshineightkoshineight 2011/10/08 22:48 このプログラムをVisual Basicで作ってみようと思います。

? 2011/10/28 00:00 うん!何にもわかんない

なっちゃんなっちゃん 2011/11/24 03:52 サマーウォーズのは事実じゃないんだ!っていうのに
やたらつっかかってる人多いけど、
むしろこの映画がそうであるように、楽しんだ方がいいと思うけどなーwww
映画は映画で面白いし、実は数学ではこうなんだっていうのも面白いじゃないwww

てつ〜てつ〜 2011/12/18 21:16 今更だけどさ、なぜそんだけ計算できてオリンピックの予選落ちたしw

.. 2012/06/12 17:40 木星10個分のスパコン用意すれば1秒で計算できますかね???www

(;´∀`)(;´∀`) 2012/07/21 14:54 …一応映画の中の話ってことでよくね

ええええええええええ 2012/07/21 15:42 Love Machineさんのおもしろい

qqqq 2012/07/21 17:11 このモジュロ演算2月を求めようとしたら狂った…

AAAAAA 2012/07/21 19:08 昨日の金曜ロードショーを見て検索してきましたw
解ける問題なのか? と思ってきたらやっぱり現状でまともに解けるものではないようですねwww

でも、やはり扱いとしては未来の話ですし、公式についても、OZという仮想空間についても、(映画の中の世界観であれば)必ずしも不可能では無いように感じます。
ただ、ほんの少しコンピュータ技術を齧っている身としては、ただでさえ優秀なクラッキングシステムを開発する悪しきハッカーが現在にもたくさんいてたくさんの人が困っている中で、例えケンジの様な天才であろうと人力で解ける可能性のある暗号を設定してしまうOZには(まじめに考えると)ビックリですがwww

個人的には少し検証要素が少ない気はするのですが、数学的教養はあまりない(致命的)ので文句は言わないよ(`・ω・´)!

あと、Love Machineさんの意見にはすごく共感できます。
実際、ラブ・マシーンの知識欲や勝負欲という物を考慮すればそれは全く違和感のない可能性ですし。
ただ、ケンジはマークされてないからアカウントを取得できたのではなく、あれはあくまで先輩の家の電話ですし、取得手続きをしたのはサクマくんでしたね。

作品としては夢のある作品でしたし、『何かおかしい。ツッコミどころは多い』と思いながらもラストには感動してしまう作品です。
あ、因みに時をかける少女、サマー・ウォーズと、この監督はロリコンだと思ってます(笑)


あと、記事に関してわざと嫌なことをいう方にですが――自分にとって気に食わない意見を真っ赤になって叩くような行為は格好悪いとか言うより不毛ですし、ネット上の相手に自分の行為で何か影響を与えられるだなんておこがましいにも程がある。
止めた方がいいですよ?www

あ、長文乱文煽り失礼しましたwwwwww

にゅーにゅー 2012/07/21 22:29 そんな嫌なら細田さんに電話しろw
てかフィクションだよ?まずそこからだからね?

にゅーにゅー 2012/07/21 22:43 何が言いたいかと言うと、最後に
でもいい映画だった、とか、
しっかりとした作品の感想があればしっくりきたかなぁ、と思いました。
こんな素晴らしい考察が(解説?)あるのですから
先程はすみませんでした。

chkechke 2012/07/22 00:11 299235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313324527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829672124236253625618429357069352457338978305971235639587050598907514975992900268795435416295859263538286292999937352739389301527202827373093939373903973135245276228978273826989822154612213136061942130302181438162575788886766923577992357799761466612018296721242362536256184293570693524573389783059712356395870505989075149759929002687954354162958592635382862929999373527393893015272028273730939393739039731352452762289782738269898221546122131360619421303021814381625757888867669235779923577997614666120182967212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829

yDxZETyDxZET 2012/07/25 15:34 面白い解説をありがとうございます!
数学オリンピックや説いている暗号に興味がでて調べると
ココに着きました。
自分では知り得にくいものをこうして見ることが出来るのはとても嬉しかったです!

misuzu1220misuzu1220 2012/07/25 20:25 あんまりわからないけど、面白いです

マジコンマジコン 2012/07/27 09:46 映画を科学的だとか数学的だとかいう見方をしても何もおもしろくない。

何も考えずに1から見ていくという見方をすれば映画のおもしろさに気づけるはずです。

あなたの見方もおもしろくないわけでもありませんが…

映画をもっと楽しんでください。

まるこめまるこめ 2012/07/29 03:56 かめはめ波を使える訳ないって言ってるのと同じで、マンガだからいいんだよ

OLDsnakeOLDsnake 2012/07/29 16:51 だめだ〜頭が痛くなる〜

ZEROZERO 2012/08/04 21:19 chkeさんの暗号健二に解かせたらどうなるんだろ・・・?owo

DyDy 2012/08/22 18:44 こういう見方も面白い。

ぎんじぎんじ 2012/09/01 12:38 85145788838686859528648568453090370570579643084063848604527622760275472828761763161723888346764764154771788471670964691836416488488566836856843819048648638563868548236918146448585636361691368683456865656685635859459435589440589158466518956345900310851563463941815638496063405130390480566599356138965943454451656458655555555555555555555555555555556683534538956453503404960346436545350495664956985694656568585845845888888888888888888888888888888866019834695036535136583848834561って.ウオーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@イフェvierophvuioadbvgbfrqueqeerfguaivbsrswuegggggggggggggggggggggggggggggggggggggggggggggggggggggjdquo:rgufq大島 優子マンコ大島

ginjiginji 2012/09/01 12:40 uuqeuaquvbabqbuodf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gufffffffffffffffffffffffffffffeqiurfgpiurbgvijjjjjjjigkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkfaurrrrrrrrgihlllllhddddddddddddddddyyyythaegvbdjkkkkkzb filubkvjsssifuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvgnjehuetiufgwusirehfghbrighdfoigdhoio

謎の円盤うふぉ謎の円盤うふぉ 2012/10/03 18:02 アルカディアの旗がはためいていたり、ホワイトベースが空を飛んだり、かめはめ波が撃てたり、100tハンマーで殴られたのに生きてたり、100tハンマーを振りかざす人間がいたり・・・・
それでも面白いけど?

そのうえで、考証をするというのも、一つの楽しみなんだし、
凄さと面白さの演出であるフィクションなんだから、いろんな見方があってもいいと思いますよ。

それより・・・・・空って、どこからが空なんでしょう?

AKAK 2013/01/05 22:12 僕は数学の専門ではありませんが、映画自体が近未来の、割とリアルな世界観(実在する地名や武家をモデルにしていたり)を持っているので、計算関係にもリアリティがあったら遊び心があってより面白くなるなぁっていう主さんのお気持ちが凄く解ります。作品への好意を感じました。

今日DVDで見ていて、解読した暗号が英文であることに気が付き、調べてみたら実在する暗号文や格言でした。

こういった、画面を止めて見ないと解らない細かい遊び心があるから、アニメって面白いです。

痘痕痘痕 2013/02/22 22:22 小説では乱数だって書いてありましたよ

えくぼえくぼ 2013/06/05 00:12 パクリ、綾部小の先生にチクってやる。
http://d.hatena.ne.jp/LM-7/touch/searchdiary?word=*%5B%BF%F4%B3%D8%5D

夏の終わり夏の終わり 2013/09/09 17:41 67212423625362561842935706935245733897830597123563958705059890751497599290026879543541629585926353828629299993735273938930152720282737309393937390397313524527622897827382698982215461221313606194213030218143816257578888676692357799235779976146661201829
上のやつこれの繰り返しじゃね?

momoさんへmomoさんへ 2013/09/29 19:30 途中で整数になるのは超簡単に言うと切り捨てです
普通に言うとその整数の数をこさない最大の整数、です
例えば9/4は2.25ですけどこの場合2になります

ジョジョ好きジョジョ好き 2014/03/21 08:41 LM−7さん

人にはそれぞれの意見があると思います
つまりLM−7さんの意見を肯定する人と否定する人が居るということです
しかしここで重要なのがどんな意見でもその意図を探るということです
何らかの意図があって発言したに違いないと考えすぐには否定せずこのような意見をして何の意味があるのだろうと模索することだと思います

文系の私には数学のことはよくわかりませんでしたが、「サマーウォーズ」という作品を楽しむという目線から考えればとても興味深いものでした
ありがとうございました


謎の円盤うふぉさんへ

「空」とはこの地上からみている「景色」のことだと思います
具体的には今立っている場所から上を見上げてみてください(室外に限る)何が見えますか?今見えているものが「空」です
つまり「空」とは一種の概念であり自分が「空」と思い描いている場所こそが「空」だと思います
要するに「空」に境界なんて物はなくて、むしろ境界がないからこその「空」だと私は思います

イマイチ要領得なくてすいませんww

RainRain 2014/06/20 14:45 数学得意なのですか?

aaaaaaaa 2015/02/18 19:21 >>よい映画だけに、まともな科学考証がなされてないことが実に惜しい。誰かアドバイスできる人はいなかったのか。
この一文が荒れる原因になってるんだね
初めにツッコミは無用とは書かれているものの、フィクションの映画の内容に対して批判しているように受け取れる。
暗号の解き方についての考察だけなら問題ないけれど、それを主人公が解くのは有り得ないなんていうのは無意味なこと
フィクションだからという理由だけでなく、それを実際に出来る人間が世界には存在しないということを証明できないから。
本当に科学的視点から語りたいのであれば、自分のかじった知識との矛盾点を指摘して悦に浸るのではなく、それを実現するための方法などを考察するべき。

aaaaaaaa 2015/02/18 19:21 >>よい映画だけに、まともな科学考証がなされてないことが実に惜しい。誰かアドバイスできる人はいなかったのか。
この一文が荒れる原因になってるんだね
初めにツッコミは無用とは書かれているものの、フィクションの映画の内容に対して批判しているように受け取れる。
暗号の解き方についての考察だけなら問題ないけれど、それを主人公が解くのは有り得ないなんていうのは無意味なこと
フィクションだからという理由だけでなく、それを実際に出来る人間が世界には存在しないということを証明できないから。
本当に科学的視点から語りたいのであれば、自分のかじった知識との矛盾点を指摘して悦に浸るのではなく、それを実現するための方法などを考察するべき。

KokoKoko 2015/03/13 18:38 736165378166283661357362617268268479484050838384739373862636151674457263573637363637746473562725378267383763737356364627837928730918292773726367663764665453434433233233131324435354133120818926252432324313233131313132121342424345346211867643520998162586376527628175728266282628817225734824982997292772816254242624527839937882673388361483947090173899092803807298923289222723456854103935737615353

⊂((・x・))⊃⊂((・x・))⊃ 2015/07/20 07:50 とりあえず、すっごくおもしろいです!!
数学ぜんぜん理解できないけど、
なんか、サマーウォーズもっと大好きになりました!
いつか自分もできるように…っておもいました笑

名無し名無し 2015/09/11 11:16 コメ欄に虚構と現実が区別できない池沼がいるな

マン春日マン春日 2016/01/23 15:59 アスペかな?

Akatsuki-2791Akatsuki-2791 2016/02/15 01:01 この話題をフィクションだから、で片付ける人は、
そもそもフィクションとはいえ現実に準じた
世界観でこの作品が構成されてるからこそ、
現実との齟齬が浮き出ると萎える、っていう
感覚が麻痺してると思う。
創作に関わったことがない人なんだろうな。

結構前の映画だが・・・結構前の映画だが・・・ 2016/03/28 01:32 暗号(RSA暗号とした場合の)解読で手計算暗算する描写もそうだが
個人的には再突入体を(任意でないとは言え)GPS制御できることがあり得ないと思った
誰かこの辺掘り下げて欲しい

以下感想文
演出やストーリー進行は素晴らしいが
全体的に作り込みが甘く(特に科学考証)、リアル感を売りにしている割りには
余りにも現実無視のご都合主義満載だな。。。と思った
あと作画が所々崩壊してるのも気になった次第であります

いえねSF映画なんてもっと現実離れしたアホみたいなものも沢山あるわけで・・・
まぁファンタジー映画として楽しめれば良いと思います

奈 2016/06/14 17:14 サマーウォーズ、見ました。あんなすごい計算をすぐに解くなんてケンジ君、羨ましいな〜。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証