#include <bits/stdc++.h>
char ans[4][150];
int d[4][150], cnt, n;
char a[1000];
int pos[30];
int dx[] = {1, -1, 0, 0}, dy[] = {0, 0, 1, -1};
int v[4][150];
void fillEven() {
  for (int i = 0; i < n; i += 2) d[0][i] = d[0][i + 1] = ++cnt;
  for (int i = 0; i < n; i += 2) d[1][i] = d[1][i + 1] = ++cnt;
  d[2][0] = d[3][0] = ++cnt;
  for (int i = 1; i < n - 1; i += 2) d[2][i] = d[2][i + 1] = ++cnt;
  for (int i = 1; i < n - 1; i += 2) d[3][i] = d[3][i + 1] = ++cnt;
  d[2][n - 1] = d[3][n - 1] = ++cnt;
}
void fillOdd() {
  d[0][0] = d[1][0] = ++cnt;
  for (int i = 1; i < n; i += 2) d[0][i] = d[0][i + 1] = ++cnt;
  for (int i = 1; i < n; i += 2) d[1][i] = d[1][i + 1] = ++cnt;
  for (int i = 0; i < n - 1; i += 2) d[2][i] = d[2][i + 1] = ++cnt;
  for (int i = 0; i < n - 1; i += 2) d[3][i] = d[3][i + 1] = ++cnt;
  d[2][n - 1] = d[3][n - 1] = ++cnt;
}
bool isOK(int x, int y) { return (x >= 0 && y >= 0 && x < 4 && y < n); }
void elim(int x, int y) {
  for (int i = 0; i < 4; ++i)
    if (isOK(x + dx[i], y + dy[i]) && v[x + dx[i]][y + dy[i]]) {
      pos[a[d[x + dx[i]][y + dy[i]]]] = 1;
    }
}
int getAl() {
  for (int i = 1; i <= 26; ++i)
    if (!pos[i]) return i;
  return -1;
}
void fixIt() {
  for (int i = 0; i < 4; ++i) {
    for (int j = 0; j < n; ++j) {
      if (v[i][j]) continue;
      for (int c = 0; c <= 26; ++c) pos[c] = 0;
      elim(i, j);
      if (i < 3 && d[i + 1][j] == d[i][j]) {
        elim(i + 1, j);
        a[d[i][j]] = getAl();
        ans[i][j] = ans[i + 1][j] = a[d[i][j]] + 'a' - 1;
        v[i][j] = v[i + 1][j] = 1;
      } else {
        elim(i, j + 1);
        a[d[i][j]] = getAl();
        ans[i][j] = ans[i][j + 1] = a[d[i][j]] + 'a' - 1;
        v[i][j] = v[i][j + 1] = 1;
      }
    }
  }
}
int main() {
  scanf("%d", &n);
  if (n % 2) {
    fillOdd();
  } else {
    fillEven();
  }
  fixIt();
  for (int i = 0; i < 4; ++i) printf("%s\n", ans[i]);
}
