#include <bits/stdc++.h>
using namespace std;
template <class T>
T inline sqr(T x) {
  return x * x;
}
template <class T>
inline void relaxMin(T &a, T b) {
  a = min(a, b);
}
template <class T>
inline void relaxMax(T &a, T b) {
  a = max(a, b);
}
string str(int i) {
  char s[100];
  sprintf(s, "%d", i);
  return string(s);
}
inline int sign(int x) { return x > 0 ? 1 : (x < 0 ? -1 : 0); }
inline int myAbs(int a) { return a > 0 ? a : -a; }
const int maxn = 103;
char s[4][maxn];
int main() {
  int n;
  cin >> n;
  if (n == 1) {
    puts("a");
    puts("a");
    puts("b");
    puts("b");
    return 0;
  }
  if (n == 2) {
    puts("aa");
    puts("bb");
    puts("cc");
    puts("dd");
    return 0;
  }
  if (n % 2 == 0) {
    for (int i = 0; i < (int)(n / 2); i++) {
      s[0][2 * i] = s[0][2 * i + 1] = i % 2 + 'a';
      s[3][2 * i] = s[3][2 * i + 1] = i % 2 + 'c';
    }
    for (int i = 0; i < (int)(n / 2 - 1); i++) {
      s[1][2 * i + 2] = s[1][2 * i + 1] = i % 2 + 'e';
      s[2][2 * i + 2] = s[2][2 * i + 1] = i % 2 + 'g';
    }
    s[1][0] = s[2][0] = 'x';
    s[1][n - 1] = s[2][n - 1] = 'y';
  } else {
    for (int i = 0; i < (int)(n / 2); i++) {
      s[0][2 * i] = s[0][2 * i + 1] = i % 2 + 'a';
      s[1][2 * i] = s[1][2 * i + 1] = i % 2 + 'c';
      s[2][2 * i + 2] = s[2][2 * i + 1] = i % 2 + 'e';
      s[3][2 * i + 2] = s[3][2 * i + 1] = i % 2 + 'g';
    }
    s[2][0] = s[3][0] = 'x';
    s[0][n - 1] = s[1][n - 1] = 'y';
  }
  for (int i = 0; i < (int)(4); i++) puts(s[i]);
  return 0;
}
