#include <bits/stdc++.h>
#define rep(i,n) for(ll i=0;i<(n);++i)
#define all(a) (a).begin(),(a).end()
#define dunk(a) cout << (a) << endl
#define rall(a) (a).rbegin(),(a).rend()
const int INF = 2e9;
using namespace std;
using Graph = vector<vector<int>>;
typedef pair<int,int> P;
typedef long long ll;

int n;
void dfs(string s, char mx){
    if(s.size == n){
        dunk(s);
        return;
    }
    for(char x = 'a'; x <= mx; x++){
        string t = s;
        t += x;
        dfs(t, max(x, mx));
    }
}

int main(){
    cin >> n;
    dfs("", 'a'-1);
}

    