#### Registered Users Only

Please login to utilize this feature.

Do note that this website only supports submissions in C++.

### Square Graph

### Problem Statement

Takahashi has received an undirected graph with `N` vertices, numbered `1`, `2`, ..., `N`.
The edges in this graph are represented by `(u _{i}, v_{i})`.
There are no self-loops and multiple edges in this graph.

Based on this graph, Takahashi is now constructing a new graph with `N ^{2}` vertices, where each vertex is labeled with a pair of integers

`(a, b)`(

`1 ≤ a ≤ N`,

`1 ≤ b ≤ N`). The edges in this new graph are generated by the following rule:

- Span an edge between vertices
`(a, b)`and`(a', b')`if and only if both of the following two edges exist in the original graph: an edge between vertices`a`and`a'`, and an edge between vertices`b`and`b'`.

How many connected components are there in this new graph?

### Constraints

`2 ≤ N ≤ 100,000``0 ≤ M ≤ 200,000``1 ≤ u`_{i}< v_{i}≤ N- There exists no pair of distinct integers
`i`and`j`such that`u`and_{i}= u_{j}`v`._{i}= v_{j}

### Input

The input is given from Standard Input in the following format:

NMu_{1}v_{1}u_{2}v:_{2}u_{M}v_{M}

### Output

Print the number of the connected components in the graph constructed by Takahashi.

### Sample Input 1

3 1 1 2

### Sample Output 1

7

The graph constructed by Takahashi is as follows.

### Sample Input 2

7 5 1 2 3 4 3 5 4 5 2 6

### Sample Output 2

18

### Tags

### Subtasks and Limits

Subtask | Score | #TC | Time | Memory | Scoring |
---|---|---|---|---|---|

1 | 100 | 30 | 1s | 256MB | Minimum |

2 | 0 | 2 | 1s | 256MB | Minimum |

### Judge Compile Command

g++-7 ans.cpp -o squaregraph -Wall -static -O2 -lm -m64 -s -w -std=gnu++17 -fmax-errors=512