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: S = "abcdefghijklmnop"
  
  
  def main():
  
      N = int(input())
  
      if N == 1:
          for i in range(1):
              print(S[i])
  
      elif N == 2:
          for i in range(1):
              for j in range(i + 2):
                  print(S[i] + S[j])
  
      elif N == 3:
          for i in range(1):
              for j in range(i + 2):
                  for k in range(j + 2):
                      print(S[i] + S[j] + S[k])
  
      elif N == 4:
          for i in range(1):
              for j in range(i + 2):
                  for k in range(j + 2):
                      for l in range(k + 2):
                          print(S[i] + S[j] + S[k] + S[l])
  
      elif N == 5:
          for i in range(1):
              for j in range(i + 2):
                  for k in range(j + 2):
                      for l in range(k + 2):
                          for m in range(l + 2):
                              print(S[i] + S[j] + S[k] + S[l] + S[m])
  
      elif N == 6:
          for i in range(1):
              for j in range(i + 2):
                  for k in range(j + 2):
                      for l in range(k + 2):
                          for m in range(l + 2):
                              for n in range(m + 2):
                                  print(S[i] + S[j] + S[k] + S[l] + S[m] + S[n])
  
      elif N == 7:
          for i in range(1):
              for j in range(i + 2):
                  for k in range(j + 2):
                      for l in range(k + 2):
                          for m in range(l + 2):
                              for n in range(m + 2):
                                  for o in range(n + 2):
                                      print(
                                          S[i] + S[j] + S[k] + S[l] + S[m] + S[n] + S[o]
                                      )
  
      elif N == 8:
          for i in range(1):
              for j in range(i + 2):
                  for k in range(j + 2):
                      for l in range(k + 2):
                          for m in range(l + 2):
                              for n in range(m + 2):
                                  for o in range(n + 2):
                                      for p in range(o + 2):
                                          print(
                                              S[i]
                                              + S[j]
                                              + S[k]
                                              + S[l]
                                              + S[m]
                                              + S[n]
                                              + S[o]
                                              + S[p]
                                          )
  
      elif N == 9:
          for i in range(1):
              for j in range(i + 2):
                  for k in range(j + 2):
                      for l in range(k + 2):
                          for m in range(l + 2):
                              for n in range(m + 2):
                                  for o in range(n + 2):
                                      for p in range(o + 2):
                                          for q in range(p + 2):
                                              print(
                                                  S[i]
                                                  + S[j]
                                                  + S[k]
                                                  + S[l]
                                                  + S[m]
                                                  + S[n]
                                                  + S[o]
                                                  + S[p]
                                                  + S[q]
                                              )
  
      elif N == 10:
          for i in range(1):
              for j in range(i + 2):
                  for k in range(j + 2):
                      for l in range(k + 2):
                          for m in range(l + 2):
                              for n in range(m + 2):
                                  for o in range(n + 2):
                                      for p in range(o + 2):
                                          for q in range(p + 2):
                                              for r in range(q + 2):
                                                  print(
                                                      S[i]
                                                      + S[j]
                                                      + S[k]
                                                      + S[l]
                                                      + S[m]
                                                      + S[n]
                                                      + S[o]
                                                      + S[p]
                                                      + S[q]
                                                      + S[r]
                                                  )
  
  
  main()
  
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"}]