{"raw_statement":[{"iden":"statement","content":"给你一个森林，每条边有一个方向。\n\n你可以进行两种操作：\n\n- 新增一个点。\n\n- 将两个点之间连一条有向边。\n\n你要使得最后将所有有向边看成无向边后，图形成一棵树，且每个点的出度都是平方数。\n\n给出一种新增点数最少的方案。"},{"iden":"input","content":"第一行两个整数 $n,m$（$1\\le m \\lt n \\le 10^5$）表示这个森林的点数和边数。\n\n接下来 $m$ 行，每行两个数 $u,v$（$1\\le u,v\\le n$）表示一条 $u$ 连向 $v$ 的有向边。\n\n保证将每条边看作无向边后，这张图是森林。"},{"iden":"output","content":"第一行两个整数 $x,y$ 表示你的新增点数和连边数。\n\n接下来 $y$ 行，每行两个数 $u,v$ 表示新增一条 $u$ 连向 $v$ 的有向边，你要保证 $1\\le u,v\\le n+x$。"}],"translated_statement":null,"sample_group":[["3 2\n1 2\n1 3","2 2\n1 4\n1 5"]],"show_order":[],"formal_statement":null,"simple_statement":null,"has_page_source":false}