#include <bits/stdc++.h>
using namespace std;
const double PI = 3.14159265358979;
const double PI2 = 6.28318530717958;
const double PId2 = 1.570796326794895;
inline vector<int> ReadVI(int count) {
  vector<int> arrayname(count);
  for (int i = 0; i < int(count); i++) cin >> arrayname[i];
  return arrayname;
};
inline vector<pair<int, int> > ReadVII(int count) {
  vector<pair<int, int> > arrayname(count);
  for (int i = 0; i < int(count); i++) {
    cin >> arrayname[i].first;
    arrayname[i].second = i;
  }
  return arrayname;
};
const int MOD = 1000000007;
const int MAXVALUE = 100001;
string getLine(int len, int offset) {
  string s(2 * len, 0);
  for (int i = 0; i < len; i++) {
    s[2 * i] = 'a' + (i + offset) % 25;
    s[2 * i + 1] = 'a' + (i + offset) % 25;
  }
  return s;
}
int main(void) {
  int n;
  cin >> n;
  string s[4];
  for (int i = 0; i < 4; i++) s[i] = string(n, '#');
  if (n % 2 == 0) {
    s[0] = getLine(n / 2, 0);
    s[1] = 'b' + getLine(n / 2 - 1, 2) + 'z';
    s[2] = 'b' + getLine(n / 2 - 1, 3) + 'z';
    s[3] = getLine(n / 2, 0);
  } else {
    s[0] = getLine(n / 2, 0) + 'z';
    s[1] = getLine(n / 2, 1) + 'z';
    s[2] = 'c' + getLine(n / 2, 0);
    s[3] = 'c' + getLine(n / 2, 1);
  }
  for (int i = 0; i < 4; i++) cout << s[i] << endl;
}
