#P1968. Trees

Trees

       A graph consists of a set vertices and edges between pairs of vertices. Two vertices are connected if there is a path(subset of edges)leading from one vertex to another, and a connected component is a maximal subset of vertices that are all connected to each other. A graph consists one or more connected components.
   A tree is a connected component without cycles, but it can also be characterized in other ways. For example, a tree consisting of n vertices has exactly n-1 edges.Also, there is a unique path connecting any pair of vertices in a tree.
  Give a graph, report the number of connected components that are also trees. 

Input

  The input consist of a number of cases. Each case starts with two non-negative integer n and m, satisfying n <= 500 and m <= n(n-1)/2. This is followed by m lines,each containing two integers specifying the two vertices connected by an edge. The vertices are labeled from 1 to n. The end of input is indicated by a line containing n = m = 0.

Output

  For each case,print one of the following lines depending on how
  many different connected components are trees.(T > 1 below):
   Case x: A forest of T trees.
   Case x: There is one tree.
   Case x: No Trees.
  x is the case number (starting from 1).
  

Sample Input

6 3
1 2
2 3
3 4
6 5
1 2
2 3
3 4
4 5
5 6
6 6
1 2
2 3
1 3
4 5
5 6
6 4
0 0

Sample Output

</p>
Case 1: A forest of 3 trees.
Case 2: There is one tree.
Case 3: No Trees.

HINT

Source