The mayor noticed that the large number of minibuses in the city has caused residents to stop using trams. Therefore, the company managing all minibus routes in the city decided to reorganize. There are minibus stops, some of which are connected by roads. If two stops are connected by a road, a minibus can travel from one to the other and back without additional stops. No two stops are connected by more than one road, and no road connects a stop to itself. A minibus stops at every stop on its route. After the order to reduce the number of routes, only circular routes with at least three distinct stops remained, and on each such route, no stop is visited more than once. In addition, any pair of routes must differ by at least one road. The company wanted to remain competitive, so it decided to create the maximum number of such routes, numbered from to ( is the number of routes). There is exactly one minibus on each route.
The second problem was to create the inspectors' schedule. The schedule is a table where the columns are routes and the rows are time moments when inspections are made. If the cell [T, I] contains the number , it means that at time , the minibus on route is stopped for inspection at stop . A cell may be empty. During one day, each minibus must be inspected exactly once at each stop of its route, i.e., the number of nonempty cells in each column equals the number of stops in the route. In addition, no two minibuses may be inspected at the same stop at the same time, and a minibus cannot be inspected at two stops at the same time. Find the minimal possible number of rows in such a table.
The first line contains two integers and — the number of stops and roads in the city (3 \leq N \leq 14). Each of the next lines contains a pair of integers specifying stops connected by a road (numbers from to ).
Output a single integer — the minimal number of rows in the schedule.
Example 1