During a nice day at the beach you meet new people who might become your friends. To stay in touch you write down each person's name together with the town they came from. Afterwards you wonder how many different towns these people actually came from.
This is complicated by the typos you make while writing the town names down. If you record one person as being from "Pasadena" and another from "Passadena", it looks like two towns even though it might be one. So you need a program to account for these mistakes.
Each town name is a string of uppercase and lowercase letters and the character -. Case is ignored, so "SAN-DIEGO" and "san-diEgo" denote the same town. Two names may denote the same town when, after ignoring case, they are equal or differ by exactly one character — a single insertion, deletion, or replacement (a Levenshtein edit distance of at most $1$). For example "SanDIego" and "san-diego" could be the same town, but "san-diego" and "san-deigo" could not.
A group of people can all come from one town only if every pair of their names differs by at most one character. It is not enough that some single name exists within one character of all of them. For example, given the three names "Tijuana", "tejuana", and "TI-Juana", every name is within one character of "Tijuana", yet "tejuana" and "TI-Juana" differ by two characters, so those two people cannot share a town — you must assume at least two towns.
Compute the minimum number of towns these people could be coming from.
Of course, you also meet a lot of people who you would never want to be friends with. Ever.
The first line contains an integer $K \ge 1$, the number of data sets. Each data set has the following form:
For each data set, first print Data Set x: on its own line, where x is the data set's number (starting from $1$). Then print the minimum number of towns these people could be from.