#include <bits/stdc++.h>
using namespace std;
const int maxn = 201;
int a[maxn];
char t[maxn], s[maxn];
char c[30] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
              'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
              'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D'};
int main() {
  int n;
  scanf("%d", &n);
  int cnt = 0;
  a[cnt++] = n;
  while (n != 1 && n != 0) {
    if (n % 2 == 0) {
      n /= 2;
      a[cnt++] = --n;
    } else {
      n--;
      n /= 2;
      a[cnt++] = n;
    }
  }
  for (int i = 0; i < cnt; i++) {
  }
  memset(t, '\0', sizeof(t));
  memset(s, '\0', sizeof(s));
  int p, q, r, i;
  if (a[cnt - 1] == 1) {
    t[0] = s[0] = 'a';
    r = 1;
    p = q = 1;
    i = cnt - 2;
  } else if (a[cnt - 1] == 0) {
    t[0] = t[1] = 'a';
    s[0] = 'a';
    r = 1;
    p = 2;
    q = 1;
    i = cnt - 3;
  }
  for (; i >= 0; i--, r++) {
    if (a[i] == a[i + 1] * 2 + 2) {
      int l = strlen(t);
      l += 4;
      t[l - 1] = t[l - 2] = c[r];
      for (int k = l - 3; k >= r + 2; k--) {
        t[k] = t[k - 2];
      }
      t[r] = t[r + 1] = c[r];
      p = l;
    } else if (a[i] == a[i + 1] * 2 + 1) {
      int l = strlen(t);
      l += 3;
      t[l - 1] = t[l - 2] = c[r];
      for (int k = l - 3; k >= r + 1; k--) {
        t[k] = t[k - 1];
      }
      t[r] = c[r];
      p = l;
    }
    s[q++] = c[r];
  }
  printf("%s %s\n", t, s);
  return 0;
}
