#include <bits/stdc++.h>
using namespace std;
int main() {
  int input;
  cin >> input;
  vector<string> vec1;
  vector<string> vec2;
  vector<string> vec3;
  vector<string> vec4;
  vector<string> vec5;
  vector<string> vec6;
  vector<string> vec7;
  vector<string> vec8;
  vector<string> vec9;
  vector<string> vec10;
  vec1.push_back("a");
  vec2.push_back("aa");
  vec2.push_back("ab");
  for (int i = 0; i < vec2.size(); i++) {
    if ((vec2.at(i)).at(vec2.at(i).size()) == 'a') {
      vec3.push_back(vec2.at(i) + "a");
      vec3.push_back(vec2.at(i) + "b");
    }
    if ((vec2.at(i)).at(vec2.at(i).size()) == 'b') {
      vec3.push_back(vec2.at(i) + "a");
      vec3.push_back(vec2.at(i) + "b");
      vec3.push_back(vec2.at(i) + "c");
    }
  }
  for (int i = 0; i < vec3.size(); i++) {
    if ((vec3.at(i)).at(vec3.at(i).size()) == 'a') {
      vec4.push_back(vec3.at(i) + "a");
      vec4.push_back(vec3.at(i) + "b");
    }
    if ((vec3.at(i)).at(vec3.at(i).size()) == 'b') {
      vec4.push_back(vec3.at(i) + "a");
      vec4.push_back(vec3.at(i) + "b");
      vec4.push_back(vec3.at(i) + "c");
    }
    if ((vec3.at(i)).at(vec3.at(i).size()) == 'c') {
      vec4.push_back(vec3.at(i) + "a");
      vec4.push_back(vec3.at(i) + "b");
      vec4.push_back(vec3.at(i) + "c");
      vec4.push_back(vec3.at(i) + "d");
    }
  }
  for (int i = 0; i < vec4.size(); i++) {
    if ((vec4.at(i)).at(vec4.at(i).size()) == 'a') {
      vec5.push_back(vec4.at(i) + "a");
      vec5.push_back(vec4.at(i) + "b");
    }
    if ((vec4.at(i)).at(vec4.at(i).size()) == 'b') {
      vec5.push_back(vec4.at(i) + "a");
      vec5.push_back(vec4.at(i) + "b");
      vec5.push_back(vec4.at(i) + "c");
    }
    if ((vec4.at(i)).at(vec4.at(i).size()) == 'c') {
      vec5.push_back(vec4.at(i) + "a");
      vec5.push_back(vec4.at(i) + "b");
      vec5.push_back(vec4.at(i) + "c");
      vec5.push_back(vec4.at(i) + "d");
    }
    if ((vec4.at(i)).at(vec4.at(i).size()) == 'd') {
      vec5.push_back(vec4.at(i) + "a");
      vec5.push_back(vec4.at(i) + "b");
      vec5.push_back(vec4.at(i) + "c");
      vec5.push_back(vec4.at(i) + "d");
      vec5.push_back(vec4.at(i) + "e");
    }
  }
  for (int i = 0; i < vec5.size(); i++) {
    if ((vec5.at(i)).at(vec5.at(i).size()) == 'a') {
      vec6.push_back(vec5.at(i) + "a");
      vec6.push_back(vec5.at(i) + "b");
    }
    if ((vec5.at(i)).at(vec5.at(i).size()) == 'b') {
      vec6.push_back(vec5.at(i) + "a");
      vec6.push_back(vec5.at(i) + "b");
      vec6.push_back(vec5.at(i) + "c");
    }
    if ((vec5.at(i)).at(vec5.at(i).size()) == 'c') {
      vec6.push_back(vec5.at(i) + "a");
      vec6.push_back(vec5.at(i) + "b");
      vec6.push_back(vec5.at(i) + "c");
      vec6.push_back(vec5.at(i) + "d");
    }
    if ((vec5.at(i)).at(vec5.at(i).size()) == 'd') {
      vec6.push_back(vec5.at(i) + "a");
      vec6.push_back(vec5.at(i) + "b");
      vec6.push_back(vec5.at(i) + "c");
      vec6.push_back(vec5.at(i) + "d");
      vec6.push_back(vec5.at(i) + "e");
    }
    if ((vec5.at(i)).at(vec5.at(i).size()) == 'e') {
      vec6.push_back(vec5.at(i) + "a");
      vec6.push_back(vec5.at(i) + "b");
      vec6.push_back(vec5.at(i) + "c");
      vec6.push_back(vec5.at(i) + "d");
      vec6.push_back(vec5.at(i) + "e");
      vec6.push_back(vec5.at(i) + "f");
    }
    for (int i = 0; i < vec6.size(); i++) {
      if ((vec6.at(i)).at(vec6.at(i).size()) == 'a') {
        vec7.push_back(vec6.at(i) + "a");
        vec7.push_back(vec6.at(i) + "b");
      }
      if ((vec6.at(i)).at(vec6.at(i).size()) == 'b') {
        vec7.push_back(vec6.at(i) + "a");
        vec7.push_back(vec6.at(i) + "b");
        vec7.push_back(vec6.at(i) + "c");
      }
      if ((vec6.at(i)).at(vec6.at(i).size()) == 'c') {
        vec7.push_back(vec6.at(i) + "a");
        vec7.push_back(vec6.at(i) + "b");
        vec7.push_back(vec6.at(i) + "c");
        vec7.push_back(vec6.at(i) + "d");
      }
      if ((vec6.at(i)).at(vec6.at(i).size()) == 'd') {
        vec7.push_back(vec6.at(i) + "a");
        vec7.push_back(vec6.at(i) + "b");
        vec7.push_back(vec6.at(i) + "c");
        vec7.push_back(vec6.at(i) + "d");
        vec7.push_back(vec6.at(i) + "e");
      }
      if ((vec6.at(i)).at(vec6.at(i).size()) == 'e') {
        vec7.push_back(vec6.at(i) + "a");
        vec7.push_back(vec6.at(i) + "b");
        vec7.push_back(vec6.at(i) + "c");
        vec7.push_back(vec6.at(i) + "d");
        vec7.push_back(vec6.at(i) + "e");
        vec7.push_back(vec6.at(i) + "f");
        if ((vec6.at(i)).at(vec6.at(i).size()) == 'f') {
          vec7.push_back(vec6.at(i) + "a");
          vec7.push_back(vec6.at(i) + "b");
          vec7.push_back(vec6.at(i) + "c");
          vec7.push_back(vec6.at(i) + "d");
          vec7.push_back(vec6.at(i) + "e");
          vec7.push_back(vec6.at(i) + "f");
          vec7.push_back(vec6.at(i) + "g");
        }
        for (int i = 0; i < vec7.size(); i++) {
          if ((vec7.at(i)).at(vec7.at(i).size()) == 'a') {
            vec8.push_back(vec7.at(i) + "a");
            vec8.push_back(vec7.at(i) + "b");
          }
          if ((vec7.at(i)).at(vec7.at(i).size()) == 'b') {
            vec8.push_back(vec7.at(i) + "a");
            vec8.push_back(vec7.at(i) + "b");
            vec8.push_back(vec7.at(i) + "c");
          }
          if ((vec7.at(i)).at(vec7.at(i).size()) == 'c') {
            vec8.push_back(vec7.at(i) + "a");
            vec8.push_back(vec7.at(i) + "b");
            vec8.push_back(vec7.at(i) + "c");
            vec8.push_back(vec7.at(i) + "d");
          }
          if ((vec7.at(i)).at(vec7.at(i).size()) == 'd') {
            vec8.push_back(vec7.at(i) + "a");
            vec8.push_back(vec7.at(i) + "b");
            vec8.push_back(vec7.at(i) + "c");
            vec8.push_back(vec7.at(i) + "d");
            vec8.push_back(vec7.at(i) + "e");
          }
          if ((vec7.at(i)).at(vec7.at(i).size()) == 'e') {
            vec8.push_back(vec7.at(i) + "a");
            vec8.push_back(vec7.at(i) + "b");
            vec8.push_back(vec7.at(i) + "c");
            vec8.push_back(vec7.at(i) + "d");
            vec8.push_back(vec7.at(i) + "e");
            vec8.push_back(vec7.at(i) + "f");
            if ((vec7.at(i)).at(vec7.at(i).size()) == 'f') {
              vec8.push_back(vec7.at(i) + "a");
              vec8.push_back(vec7.at(i) + "b");
              vec8.push_back(vec7.at(i) + "c");
              vec8.push_back(vec7.at(i) + "d");
              vec8.push_back(vec7.at(i) + "e");
              vec8.push_back(vec7.at(i) + "f");
              vec8.push_back(vec7.at(i) + "g");
              if ((vec7.at(i)).at(vec7.at(i).size()) == 'g') {
                vec8.push_back(vec7.at(i) + "a");
                vec8.push_back(vec7.at(i) + "b");
                vec8.push_back(vec7.at(i) + "c");
                vec8.push_back(vec7.at(i) + "d");
                vec8.push_back(vec7.at(i) + "e");
                vec8.push_back(vec7.at(i) + "f");
                vec8.push_back(vec7.at(i) + "g");
                vec8.push_back(vec7.at(i) + "h");
              }
              for (int i = 0; i < vec8.size(); i++) {
                if ((vec8.at(i)).at(vec8.at(i).size()) == 'a') {
                  vec9.push_back(vec8.at(i) + "a");
                  vec9.push_back(vec8.at(i) + "b");
                }
                if ((vec8.at(i)).at(vec8.at(i).size()) == 'b') {
                  vec9.push_back(vec8.at(i) + "a");
                  vec9.push_back(vec8.at(i) + "b");
                  vec9.push_back(vec8.at(i) + "c");
                }
                if ((vec8.at(i)).at(vec8.at(i).size()) == 'c') {
                  vec9.push_back(vec8.at(i) + "a");
                  vec9.push_back(vec8.at(i) + "b");
                  vec9.push_back(vec8.at(i) + "c");
                  vec9.push_back(vec8.at(i) + "d");
                }
                if ((vec8.at(i)).at(vec8.at(i).size()) == 'd') {
                  vec9.push_back(vec8.at(i) + "a");
                  vec9.push_back(vec8.at(i) + "b");
                  vec9.push_back(vec8.at(i) + "c");
                  vec9.push_back(vec8.at(i) + "d");
                  vec9.push_back(vec8.at(i) + "e");
                }
                if ((vec8.at(i)).at(vec8.at(i).size()) == 'e') {
                  vec9.push_back(vec8.at(i) + "a");
                  vec9.push_back(vec8.at(i) + "b");
                  vec9.push_back(vec8.at(i) + "c");
                  vec9.push_back(vec8.at(i) + "d");
                  vec9.push_back(vec8.at(i) + "e");
                  vec9.push_back(vec8.at(i) + "f");
                  if ((vec8.at(i)).at(vec8.at(i).size()) == 'f') {
                    vec9.push_back(vec8.at(i) + "a");
                    vec9.push_back(vec8.at(i) + "b");
                    vec9.push_back(vec8.at(i) + "c");
                    vec9.push_back(vec8.at(i) + "d");
                    vec9.push_back(vec8.at(i) + "e");
                    vec9.push_back(vec8.at(i) + "f");
                    vec9.push_back(vec8.at(i) + "g");
                    if ((vec8.at(i)).at(vec8.at(i).size()) == 'g') {
                      vec9.push_back(vec8.at(i) + "a");
                      vec9.push_back(vec8.at(i) + "b");
                      vec9.push_back(vec8.at(i) + "c");
                      vec9.push_back(vec8.at(i) + "d");
                      vec9.push_back(vec8.at(i) + "e");
                      vec9.push_back(vec8.at(i) + "f");
                      vec9.push_back(vec8.at(i) + "g");
                      vec9.push_back(vec8.at(i) + "h");
                      if ((vec8.at(i)).at(vec8.at(i).size()) == 'h') {
                        vec9.push_back(vec8.at(i) + "a");
                        vec9.push_back(vec8.at(i) + "b");
                        vec9.push_back(vec8.at(i) + "c");
                        vec9.push_back(vec8.at(i) + "d");
                        vec9.push_back(vec8.at(i) + "e");
                        vec9.push_back(vec8.at(i) + "f");
                        vec9.push_back(vec8.at(i) + "g");
                        vec9.push_back(vec8.at(i) + "h");
                        vec9.push_back(vec8.at(i) + "i");
                      }
                      for (int i = 0; i < vec9.size(); i++) {
                        if ((vec9.at(i)).at(vec9.at(i).size()) == 'a') {
                          vec10.push_back(vec9.at(i) + "a");
                          vec10.push_back(vec9.at(i) + "b");
                        }
                        if ((vec9.at(i)).at(vec9.at(i).size()) == 'b') {
                          vec10.push_back(vec9.at(i) + "a");
                          vec10.push_back(vec9.at(i) + "b");
                          vec10.push_back(vec9.at(i) + "c");
                        }
                        if ((vec9.at(i)).at(vec9.at(i).size()) == 'c') {
                          vec10.push_back(vec9.at(i) + "a");
                          vec10.push_back(vec9.at(i) + "b");
                          vec10.push_back(vec9.at(i) + "c");
                          vec10.push_back(vec9.at(i) + "d");
                        }
                        if ((vec9.at(i)).at(vec9.at(i).size()) == 'd') {
                          vec10.push_back(vec9.at(i) + "a");
                          vec10.push_back(vec9.at(i) + "b");
                          vec10.push_back(vec9.at(i) + "c");
                          vec10.push_back(vec9.at(i) + "d");
                          vec10.push_back(vec9.at(i) + "e");
                        }
                        if ((vec9.at(i)).at(vec9.at(i).size()) == 'e') {
                          vec10.push_back(vec9.at(i) + "a");
                          vec10.push_back(vec9.at(i) + "b");
                          vec10.push_back(vec9.at(i) + "c");
                          vec10.push_back(vec9.at(i) + "d");
                          vec10.push_back(vec9.at(i) + "e");
                          vec10.push_back(vec9.at(i) + "f");
                          if ((vec9.at(i)).at(vec9.at(i).size()) == 'f') {
                            vec10.push_back(vec9.at(i) + "a");
                            vec10.push_back(vec9.at(i) + "b");
                            vec10.push_back(vec9.at(i) + "c");
                            vec10.push_back(vec9.at(i) + "d");
                            vec10.push_back(vec9.at(i) + "e");
                            vec10.push_back(vec9.at(i) + "f");
                            vec10.push_back(vec9.at(i) + "g");
                            if ((vec9.at(i)).at(vec9.at(i).size()) == 'g') {
                              vec10.push_back(vec9.at(i) + "a");
                              vec10.push_back(vec9.at(i) + "b");
                              vec10.push_back(vec9.at(i) + "c");
                              vec10.push_back(vec9.at(i) + "d");
                              vec10.push_back(vec9.at(i) + "e");
                              vec10.push_back(vec9.at(i) + "f");
                              vec10.push_back(vec9.at(i) + "g");
                              vec10.push_back(vec9.at(i) + "h");
                              if ((vec9.at(i)).at(vec9.at(i).size()) == 'h') {
                                vec10.push_back(vec9.at(i) + "a");
                                vec10.push_back(vec9.at(i) + "b");
                                vec10.push_back(vec9.at(i) + "c");
                                vec10.push_back(vec9.at(i) + "d");
                                vec10.push_back(vec9.at(i) + "e");
                                vec10.push_back(vec9.at(i) + "f");
                                vec10.push_back(vec9.at(i) + "g");
                                vec10.push_back(vec9.at(i) + "h");
                                vec10.push_back(vec9.at(i) + "i");
                                if ((vec9.at(i)).at(vec9.at(i).size()) == 'i') {
                                  vec10.push_back(vec9.at(i) + "a");
                                  vec10.push_back(vec9.at(i) + "b");
                                  vec10.push_back(vec9.at(i) + "c");
                                  vec10.push_back(vec9.at(i) + "d");
                                  vec10.push_back(vec9.at(i) + "e");
                                  vec10.push_back(vec9.at(i) + "f");
                                  vec10.push_back(vec9.at(i) + "g");
                                  vec10.push_back(vec9.at(i) + "h");
                                  vec10.push_back(vec9.at(i) + "i");
                                  vec10.push_back(vec9.at(i) + "j");
                                }
                                if (input == 1) {
                                  for (int i = 0; i < vec1.size(); i++) {
                                    cout << vec1.at(i) << endl;
                                  }
                                }
                                if (input == 2) {
                                  for (int i = 0; i < vec2.size(); i++) {
                                    cout << vec2.at(i) << endl;
                                  }
                                }
                                if (input == 3) {
                                  for (int i = 0; i < vec3.size(); i++) {
                                    cout << vec3.at(i) << endl;
                                  }
                                }
                                if (input == 4) {
                                  for (int i = 0; i < vec4.size(); i++) {
                                    cout << vec4.at(i) << endl;
                                  }
                                }
                                if (input == 5) {
                                  for (int i = 0; i < vec5.size(); i++) {
                                    cout << vec5.at(i) << endl;
                                  }
                                }
                                if (input == 6) {
                                  for (int i = 0; i < vec6.size(); i++) {
                                    cout << vec6.at(i) << endl;
                                  }
                                }
                                if (input == 7) {
                                  for (int i = 0; i < vec7.size(); i++) {
                                    cout << vec7.at(i) << endl;
                                  }
                                }
                                if (input == 8) {
                                  for (int i = 0; i < vec8.size(); i++) {
                                    cout << vec8.at(i) << endl;
                                  }
                                }
                                if (input == 9) {
                                  for (int i = 0; i < vec9.size(); i++) {
                                    cout << vec9.at(i) << endl;
                                  }
                                }
                                if (input == 10) {
                                  for (int i = 0; i < vec10.size(); i++) {
                                    cout << vec10.at(i) << endl;
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
