#include <bits/stdc++.h>
using namespace std;
char M[4][128];
int n, coluna[128];
int main() {
  scanf("%d", &n);
  memset(M, 0, sizeof(M));
  if (n == 1) {
    printf("a\na\nb\nb\n");
    return 0;
  }
  if (n == 2) {
    printf("aa\nbb\ncc\ndd\n");
    return 0;
  }
  if (n % 2 == 1) {
    for (int i = 0; i < 4; i++) {
      for (int j = 0; j < n; j++) {
        if (j == 0 and i >= 2)
          M[i][j] = 'a';
        else if (j == n - 1 and i < 2)
          M[i][j] = 'a';
        else {
          char letraok = 'A';
          for (char c = 'b'; c <= 'z'; c++) {
            if ((i - 1 >= 0 ? M[i - 1][j] : 0) != c and
                (j - 1 >= 0 ? M[i][j - 1] : 0) != c and
                (i - 1 >= 0 ? M[i - 1][j + 1] : 0) != c) {
              letraok = c;
              break;
            }
          }
          M[i][j] = M[i][j + 1] = letraok;
          j++;
        }
      }
      M[i][n] = '\0';
    }
  }
  if (n % 2 == 0) {
    for (int i = 0; i < 4; i++) {
      for (int j = 0; j < n; j++) {
        if (M[i][j] != '\0') continue;
        if (i == 0 or i == 3 or
            ((i == 1 or i == 2) and j != 0 and j != n - 1)) {
          char letraok = 'A';
          for (char c = 'b'; c <= 'z'; c++) {
            if ((i - 1 >= 0 ? M[i - 1][j] : 0) != c and
                (j - 1 >= 0 ? M[i][j - 1] : 0) != c and
                (i - 1 >= 0 ? M[i - 1][j + 1] : 0) != c and M[i][j + 2] != c) {
              letraok = c;
              break;
            }
          }
          M[i][j] = M[i][j + 1] = letraok;
          j++;
          continue;
        }
        char letraok = 'A';
        for (char c = 'b'; c <= 'z'; c++) {
          if ((i - 1 >= 0 ? M[i - 1][j] : 0) != c and
              (j - 1 >= 0 ? M[i][j - 1] : 0) != c and
              (i - 1 >= 0 ? M[i - 1][j + 1] : 0) != c and M[i][j + 2] != c) {
            letraok = c;
            break;
          }
        }
        M[i][j] = M[i + 1][j] = letraok;
      }
      M[i][n] = '\0';
    }
  }
  for (int i = 0; i < 4; i++) printf("%s\n", M[i]);
  return 0;
}
