using System.Collections.Generic;
public static void Main() {
string[][] inputs = new string[9][] {
new string[3] { "aba", "bbb", "bab" },
new string[3] { "ab", "bb", "aa" },
new string[2] { "q", "q" },
new string[3] { "zzzzab", "zzzzbb", "zzzzaa" },
new string[4] { "ab", "ad", "ef", "eg" },
new string[6] { "abc", "bef", "bcc", "bec", "bbc", "bdc" },
new string[4] { "abc", "abx", "axx", "abc" },
new string[4] { "f", "g", "a", "h" },
new string[6] { "abc", "bef", "bcc", "bec", "bbc", "bdc" },
foreach (string[] input in inputs)
Console.WriteLine(i++ + ": " + stringsRearrangement(input));
static bool stringsRearrangement(string[] inputArray) {
int n_s = inputArray.Length;
int n_c = inputArray[0].Length;
bool[,] matches = new bool[n_s, n_s];
int[] n_matches = new int[n_s];
for (int i = 0; i < n_s - 1; i++) {
for (int j = i + 1; j < n_s; j++) {
for (int k = 0; k < n_c; k++) {
if (inputArray[i][k] != inputArray[j][k]) {