using System;
using System.Collections.Generic;
using System.Linq;
public class Test
{
static IEnumerable<string> foo(IEnumerable<string> src, string meta, int n)
{
if (src.First().Length == n)
return src;
else
return foo(meta.SelectMany(x => src.Select(y => y + x)), meta, n);
}
public static void Main()
{
// your code goes here
foreach (string s in foo("ab".Select(x => x.ToString()), "ab", 5))
Console.WriteLine(s);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CgpwdWJsaWMgY2xhc3MgVGVzdAp7CglzdGF0aWMgSUVudW1lcmFibGU8c3RyaW5nPiBmb28oSUVudW1lcmFibGU8c3RyaW5nPiBzcmMsIHN0cmluZyBtZXRhLCBpbnQgbikKCXsKCQlpZiAoc3JjLkZpcnN0KCkuTGVuZ3RoID09IG4pCgkJCXJldHVybiBzcmM7CgkJZWxzZQoJCQlyZXR1cm4gZm9vKG1ldGEuU2VsZWN0TWFueSh4ID0+IHNyYy5TZWxlY3QoeSA9PiB5ICsgeCkpLCBtZXRhLCBuKTsKCX0KCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKCQkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCgkJZm9yZWFjaCAoc3RyaW5nIHMgaW4gZm9vKCJhYiIuU2VsZWN0KHggPT4geC5Ub1N0cmluZygpKSwgImFiIiwgNSkpCgkJCUNvbnNvbGUuV3JpdGVMaW5lKHMpOwoJfQp9