The Calvinball championship is held again this year. One game is played by n participants with distinct names, and the participants are divided into some number of non-empty teams. Some participants dislike each other. Disliking is symmetric, so if a dislikes b, then b dislikes a.
The organizers changed the rule for forming teams. Two participants who dislike each other cannot be on the same team, and under that condition the number of teams must be as small as possible.
For example, suppose Calvin, Hobbes, Susie, Tom, Jerry and Batman play the game, Batman dislikes the other five, and Tom dislikes Jerry and Hobbes. Three teams are enough: Batman alone, Tom with Susie, and Calvin with Hobbes and Jerry. Two teams are not, because Batman, Tom and Jerry dislike each other and need three different teams. Four teams are not an answer either, because three teams are possible.
Given who dislikes whom, find a division into the smallest possible number of teams. When several such divisions exist, the output section picks one of them.
The first line contains the number of participants n and the number of mutually disliking pairs m, separated by a space, where 0≤n≤24 and 0≤m≤n(n−1)/2. The participants are numbered from 1 to n.
The i-th of the next m lines contains two distinct integers ai and bi with 1≤ai,bi≤n, meaning that participants ai and bi dislike each other. The same pair is never given twice.
Print the number of teams t on the first line. The i-th of the next t lines contains the numbers of the participants on team i in increasing order, separated by spaces. If n is 0, print only 0 on the first line and no team lines.
Several divisions can use the minimum number of teams, so pick one by the following rule. First fix the team numbers. Team 1 is the team of participant 1, and team j is the team of the smallest-numbered participant who is not on teams 1 through j−1. Let ci be the number of the team that participant i is on. Among all divisions using the minimum number of teams, print the one whose sequence c1,c2,…,cn comes first in lexicographic order.