programming-problems

Regular programming problems and challenges

back

Problem 5: Servicing Stations

A company offers personal computers for sale in N towns (3 ≤ N ≤ 35), denoted by 1, 2, . . . , N . There are direct routes connecting M pairs among these towns. The company decides to build servicing stations to ensure that for any town X, there will be a station located either in X or in some immediately neighboring town of X.

Write a program to find the minimum number of stations the company has to build.

Input

The input consists of multiple problem descriptions. Every description starts with num- ber of towns N and number of town-pairs M , separated by a space. Each of the next M lines contains a pair of integers representing connected towns, at one pair per line with each pair separated by a space. The input ends with N = 0 and M = 0.

Output

For each input case, print a line reporting the minimum number of servicing stations needed.

Sample Input

8 12
1 2
1 6
1 8
2 3
2 6
3 4
3 5
4 5
4 7
5 6
6 7
6 8
0 0

Sample Output

2

back