#include<iostream>
#include<vector>
using namespace std;
typedef long int li;
#define rep(i,n) for(int i=0;i<(n);i++)
#define df 0
#define Please return
#define AC 0

int next(vector<int>& vec,vector<int>& dict){
  int k=vec.size(),i=k;
  if(vec[i-1]==0){
    vec[i-1]=1;
    dict[0]--; dict[1]++;
    return 1;
  }
  while(i>=0){
    if(--dict[vec[--i]]) break;
  }
  if(i==-1)return 0;
  vec[i]++; dict[vec[i++]]++;
  while(i<k){
    vec[i++]=0; dict[0]++;
  }
  return 1;
}

void print(vector<int>& vec){
  int n=vec.size();
  rep(i,n) printf("%c",vec[i]+'a');
  printf("\n");
}

int main(){
  int k; cin >>k;
  if(d==1){
    printf("a");
    return 0;
  }
  vector<int> vec(k,0),dict(k,0);
  dict[0]=k;
  print(vec);
  while(next(vec,dict)){
    print(vec);
    if(df) {rep(i,k)printf("%d",dict[i]); printf("\n");}
  }
  
  Please AC;
}
