independent set 1
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 100 M,其他语言200 M
64bit IO Format: %lld

题目描述

Note: For C++ languages, the memory limit is 100 MB. For other languages, the memory limit is 200 MB.

In graph theory, an independent set is a set of nonadjacent vertices in a graph. Moreover, an independent set is maximum if it has the maximum cardinality (in this case, the number of vertices) across all independent sets in a graph.

An induced subgraph G'(V', E') of a graph G(V, E) is a graph that satisfies:

*

* edge if and only if , and edge ;


Now, given an undirected unweighted graph consisting of n vertices and m edges. This problem is about the cardinality of the maximum independent set of each of the possible induced subgraphs of the given graph. Please calculate the sum of the such cardinalities.

输入描述:

The first line contains two integers n and m () --- the number of vertices and the number of edges, respectively. Next m lines describe edges: the i-th line contains two integers x_i, y_i () --- the indices (numbered from 0 to n - 1) of vertices connected by the i-th edge.

The graph does not have any self-loops or multiple edges.

输出描述:

Print one line, containing one integer represents the answer.
示例1

输入

复制
3 2
0 1
0 2

输出

复制
9

说明

The cardinalities of the maximum independent set of every subset of vertices are: {}: 0, {0}: 1, {1}: 1, {2}: 1, {0, 1}: 1, {0, 2}: 1, {1, 2}: 2, {0, 1, 2}: 2. So the sum of them are 9.
示例2

输入

复制
7 5
0 5
3 4
1 2
2 5
0 2

输出

复制
328