#include <bits/stdc++.h>
using namespace std;
char ans[10][110];
int n;
vector<pair<pair<int, int>, pair<int, int> > > d;
int col[101010], u[26];
int adj(pair<int, int> a, pair<int, int> b) {
  int d = abs(a.first - b.first) + abs(a.second - b.second);
  return d == 1;
}
void paint(pair<int, int> a, int col) {
  int x = a.first, y = a.second;
  ans[x][y] = char(97 + col);
}
void ins(int x1, int y1, int x2, int y2) {
  d.push_back(make_pair(make_pair(x1, y1), make_pair(x2, y2)));
}
int main() {
  cin >> n;
  if (n == 1) {
    for (int i = 1; i <= 2; i++) cout << "a" << endl;
    for (int i = 1; i <= 2; i++) cout << "b" << endl;
    return 0;
  }
  if (n == 2) {
    for (int i = 1; i <= 4; i++) {
      for (int j = 1; j <= 2; j++) cout << char(96 + i);
      cout << endl;
    }
    return 0;
  }
  if (n % 2 == 1) {
    d.clear();
    for (int i = 1; i <= n / 2; i++) {
      ins(1, i * 2 - 1, 1, i * 2);
      ins(2, i * 2 - 1, 2, i * 2);
    }
    ins(1, n, 2, n);
    for (int i = 1; i <= n / 2; i++) {
      ins(3, i * 2, 3, i * 2 + 1);
      ins(4, i * 2, 4, i * 2 + 1);
    }
    ins(3, 1, 4, 1);
  } else {
    d.clear();
    for (int i = 1; i <= n / 2; i++) {
      ins(1, i * 2 - 1, 1, i * 2);
      ins(2, i * 2 - 1, 2, i * 2);
    }
    ins(3, 1, 4, 1);
    ins(3, n, 4, n);
    for (int i = 1; i < n / 2; i++) {
      ins(3, i * 2, 3, i * 2 + 1);
      ins(4, i * 2, 4, i * 2 + 1);
    }
  }
  for (int i = 0; i < d.size(); i++) {
    memset(u, 0, sizeof(u));
    for (int j = 0; j < i; j++) {
      int flag = 0;
      if (adj(d[i].first, d[j].first) || adj(d[i].first, d[j].second)) flag = 1;
      if (adj(d[i].second, d[j].first) || adj(d[i].second, d[j].second))
        flag = 1;
      if (flag) u[col[j]] = 1;
    }
    for (int j = 0; j < 26; j++)
      if (!u[j]) {
        col[i] = j;
        break;
      }
    paint(d[i].first, col[i]);
    paint(d[i].second, col[i]);
  }
  for (int i = 1; i <= 4; i++) {
    for (int j = 1; j <= n; j++) cout << ans[i][j];
    cout << endl;
  }
  return 0;
}
