using System.Collections.Generic;

internal class Anagram {
    private string v;

    // Anagram is initialized with a string to test other strings against
    public Anagram(string v) {
        this.v = v.ToLower();
    }

    // Match takes an array of strings and returns an array that contains
    // All anagrams of this.v
    public string[] Match(string[] inp) {
      List<string> ret = new List<string>();
      foreach(string val in inp) {
        if(this.v.Length != val.Length) {
          continue;
        }
        string valTest = val.ToLower();
        bool isAnagram = true;
        if(this.v == valTest) {
          continue;
        }
        for(int i = 0; i < this.v.Length; i++) {
          int idx = valTest.IndexOf(this.v[i]);
          if(idx == -1) {
            isAnagram = false;
          }
          if(!isAnagram) {
            break;
          }
          valTest = valTest.Substring(0, idx)+valTest.Substring(idx+1);
        }
        if(isAnagram) {
          ret.Add(val);
        }
      }
      return ret.ToArray();
    }
}
