output_description: Assume that there are K strings of length N that are in normal form: w_1,
  \ldots, w_K in lexicographical order. Output should be in the following
  format:
  
      
      
      w_1
      :
      w_K
      
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
attempt: alp = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"]
  N = int(input())
  ans_list = []
  for i in range(N):
      ans_list.append([])
  for i in range(N):
      if i == 0:
          ans_list[0].append("a")
      else:
          for j in range(len(ans_list[i - 1])):
              if ans_list[i - 1][j][-1] == "a":
                  for l in range(2):
                      temp = ans_list[i - 1][j] + alp[l]
                      ans_list[i].append(temp)
              elif ans_list[i - 1][j][-1] == "b":
                  for l in range(3):
                      temp = ans_list[i - 1][j] + alp[l]
                      ans_list[i].append(temp)
              elif ans_list[i - 1][j][-1] == "c":
                  for l in range(4):
                      temp = ans_list[i - 1][j] + alp[l]
                      ans_list[i].append(temp)
              elif ans_list[i - 1][j][-1] == "d":
                  for l in range(5):
                      temp = ans_list[i - 1][j] + alp[l]
                      ans_list[i].append(temp)
              elif ans_list[i - 1][j][-1] == "e":
                  for l in range(6):
                      temp = ans_list[i - 1][j] + alp[l]
                      ans_list[i].append(temp)
              elif ans_list[i - 1][j][-1] == "f":
                  for l in range(7):
                      temp = ans_list[i - 1][j] + alp[l]
                      ans_list[i].append(temp)
              elif ans_list[i - 1][j][-1] == "g":
                  for l in range(8):
                      temp = ans_list[i - 1][j] + alp[l]
                      ans_list[i].append(temp)
              elif ans_list[i - 1][j][-1] == "h":
                  for l in range(9):
                      temp = ans_list[i - 1][j] + alp[l]
                      ans_list[i].append(temp)
              elif ans_list[i - 1][j][-1] == "i":
                  for l in range(10):
                      temp = ans_list[i - 1][j] + alp[l]
                      ans_list[i].append(temp)
  ans_list[N - 1].sort()
  for i in range(len(ans_list[N - 1])):
      print(ans_list[N - 1][i])
  
problem_description: Statement
  
  In this problem, we only consider strings consisting of lowercase English
  letters.
  
  Strings s and t are said to be **isomorphic** when the following conditions
  are satisfied:
  
    * |s| = |t| holds.
    * For every pair i, j, one of the following holds:
      * s_i = s_j and t_i = t_j.
      * s_i \neq s_j and t_i \neq t_j.
  
  For example, `abcac` and `zyxzx` are isomorphic, while `abcac` and `ppppp` are
  not.
  
  A string s is said to be in **normal form** when the following condition is
  satisfied:
  
    * For every string t that is isomorphic to s, s \leq t holds. Here \leq denotes lexicographic comparison.
  
  For example, `abcac` is in normal form, but `zyxzx` is not since it is
  isomorphic to `abcac`, which is lexicographically smaller than `zyxzx`.
  
  You are given an integer N. Print all strings of length N that are in normal
  form, in lexicographically ascending order.
samples: [{"input": "1", "output": "a\n    \n\n* * *"}, {"input": "2", "output": "aa\n    ab"}]