Welcome Contest (京都・オープン) 2026/03/26 14:00 ~ 2026/03/26 18:00 4:00:00.000

L Orientation

問題
制限時間: 2 sec メモリ制限: 1024 MB
Orientation
Statement

\(N\) 頂点 \(M\) 辺の単純連結な無向グラフ \(G\) が与えられます。 \(i\) \((1 \leq i \leq M)\) 番目の辺は頂点 \(u_i\) と頂点 \(v_i\) を双方向に結びます。

グラフ中の各辺に適切な向きをつけたときの、到達可能な頂点対の数の最大値を求めてください。

※ 到達可能な頂点対の数とは、 \(f(s, t)\) を頂点 \(s\) から頂点 \(t\) へ到達可能ならば \(1\) 、そうでなければ \(0\) であるような関数としたときに、以下で表される値となります。 \[\sum_{1\leq s,t\leq N}f(s,t)\]

Input

入力は以下の形式で標準入力から与えられます。

\(N~M\)
\(u_1~v_1\)
\(u_2~v_2\)
\(\vdots\)
\(u_M~v_M\)

入力は以下の制約をすべて満たします。

  • \(2 \leq N \leq 3 \times 10^5\)
  • \(1 \leq M \leq 3 \times 10^5\)
  • \(1 \leq u_i \lt v_i \leq N\)
  • 入力されるグラフは,単純連結
  • 入力は全て整数

Output

最大値を出力してください

Scoring

  • 部分点1(30点):このテストセットでは、\(N \leq 5000\) であることが保証されています。
  • 部分点2(70点):このテストセットに関わる追加の制約はありません。

Examples

Input 1
4 3
1 2
1 3
1 4
Output 1
9
Input 2
8 11
1 2
2 3
1 3
1 4
1 5
4 5
2 6
5 6
5 7
2 7
3 8
Output 2
57

Note

例\(1\):辺\(1\):頂点\(1\) \(\rightarrow\) 頂点\(2\),辺\(2\):頂点\(1\) \(\rightarrow\) 頂点\(3\),辺\(3\):頂点\(4\) \(\rightarrow\) 頂点\(1\) に向けることで最大値を達成することができます.