ã»ã‚€ã¡ã‚ƒã‚“ã®æœ€è¿‘ã®ãƒžã‚¤ãƒ–ームã¯ãŠè“å作りã 。ãŸãã•ã‚“ãŠè“åを作ã£ã¦ã¯ã€ãれをå‹é”ã«ãŠã™ã分ã‘ã—ã¦ã„るらã—ã„。ãã‚“ãªã»ã‚€ã¡ã‚ƒã‚“ã¯ä»Šå›žã€ãƒ‰ãƒ¼ãƒŠãƒ„ã¥ãã‚Šã«æŒ‘戦ã™ã‚‹ã‚ˆã†ã 。
ドーナツã¥ãã‚Šã«å¤§åˆ‡ãªã“ã¨ã¯ã„ãã¤ã‚‚ã‚る。生地や味付ã‘ã¯ã‚‚ã¡ã‚ã‚“ã€ã‹ã‚ã„ã„見ãŸç›®ã«ã™ã‚‹ãŸã‚ã®ãƒ‡ã‚³ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã‚‚外ã›ãªã„。試行錯誤を繰り返ã—ã¦ã„ã‚‹ã†ã¡ã«ã€ã»ã‚€ã¡ã‚ƒã‚“ã®ãƒ‡ã‚³ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã¸ã®ã“ã ã‚ã‚Šã«ç†±ãŒã“ã‚‚ã£ã¦ããŸã‚ˆã†ã 。ã“ã ã‚ã‚Šã¬ã„ãŸãƒ‰ãƒ¼ãƒŠãƒ„を多ãã®äººã«é£Ÿã¹ã¦ã‚‚らã„ãŸã„ã®ã§ã€ã»ã‚€ã¡ã‚ƒã‚“ã¯ãƒ‰ãƒ¼ãƒŠãƒ„ã‚’ãŸãã•ã‚“ã¤ãã‚ŠãŸã„ã¨è€ƒãˆã¦ã„る。
・・・ã¨ã“ã‚ã§ã€ã“ã ã‚ã‚‹ã®ã¯ä¸€å‘ã«æ§‹ã‚ãªã„ãŒã€ã»ã‚€ã¡ã‚ƒã‚“ã“ã ã‚ã‚Šã®ãƒ‰ãƒ¼ãƒŠãƒ„ã‚’å分ãªæ•°ç”¨æ„ã™ã‚‹ã“ã¨ã¯ã§ãã‚‹ã®ã ã‚ã†ã‹ï¼Ÿ
3 以上ã®æ•´æ•° N ã«ã¤ã„ã¦ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ã—㦠2N é ‚ç‚¹ã®ã‚°ãƒ©ãƒ•ã‚’作る。
ã“ã®ã‚°ãƒ©ãƒ•ã®å„辺ã«å‘ãã‚’ã¤ã‘ã¦ã€æœ‰å‘グラフを作る。ã¤ã¾ã‚Šã€é ‚点 u 㨠v ã®é–“ã«ç„¡å‘辺ãŒã‚ã‚‹ãªã‚‰ã°ã€ãれを u ã‹ã‚‰ v ã¸å‘ã‹ã†æœ‰å‘辺ã«ã™ã‚‹ã‹ã€v ã‹ã‚‰ u ã¸å‘ã‹ã†æœ‰å‘辺ã«ã™ã‚‹ã€‚
ã“ã®ã‚ˆã†ã«ã—ã¦ã§ããŸæœ‰å‘グラフã§ã‚ã£ã¦ã€ã‚µã‚¤ã‚¯ãƒ«ã‚’æŒãŸãªã„ã‚‚ã®ãŒä½•é€šã‚Šã‚ã‚‹ã‹ã‚’知りãŸã„。ç”ãˆã¯éžå¸¸ã«å¤§ãããªã‚‹ãŸã‚ã€ç´ æ•° M ã§å‰²ã£ãŸä½™ã‚Šã‚’求ã‚よ。
N M
æ¡ä»¶ã‚’満ãŸã™æœ‰å‘グラフã®æ•°ã‚’ M ã§å‰²ã£ãŸä½™ã‚Šã‚’出力ã›ã‚ˆã€‚
3 1000000007
204
N = 3 ãªã®ã§ã€6 é ‚ç‚¹ã‹ã‚‰ãªã‚‹ã‚°ãƒ©ãƒ•ã‚’作る。æ¡ä»¶ã«åˆè‡´ã™ã‚‹æœ‰å‘グラフã®ä¸€ä¾‹ã¯ä»¥ä¸‹ã®é€šã‚Šã§ã‚る。
サイクルãŒå˜åœ¨ã™ã‚‹ãŸã‚ã€ä»¥ä¸‹ã«ç¤ºã™æœ‰å‘グラフã¯æ¡ä»¶ã‚’満ãŸã•ãªã„。
128 998244353
996915100
M ã§å‰²ã£ãŸä½™ã‚Šã‚’出力ã™ã‚‹ã“ã¨ã«æ³¨æ„ã›ã‚ˆã€‚