#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <vector>
#include <cmath>
#include <set>
#include <fstream>
#include <cstring>
#include <string>
#include <algorithm>
#include <map>
#include <queue>
#include <iterator>
#include <iomanip>
#include <bitset>
#include <unordered_set>
#include <unordered_map>
using namespace std;

#define sqr(x) ((x)*(x))
#define cbr(x) ((x)*(x)*(x))
#define max(a, b) (((a)<(b))? (b):(a))
#define min(a, b) (((a)<(b))? (a):(b))
#define all(a) a.begin(), a.end()

#define _sp system("pause");
#define _ln cout << "------------------------------------------------\n";
#define FI(a, n) for(int i=a;i<n;i++)
#define FJ(a, n) for(int j=a;j<n;j++)
#define REP(a, b, c) for(int (c) = (a); (c) < (b); (c)++)
#define rep(a, b, c) for(int (c) = (a); (c) < (b); (c)++)
#define per(b, a, c) for(int (c) = (b); (c) >= (a); (c)--)

#define ll long long
#define ull unsigned long long
#define pii pair<int, int>
#define mp(a, b) make_pair((a), (b))
#define pb(a) push_back((a))
#define x first
#define y second

#define x1 sasimathx1
#define y1 sasimathy1

ll delbit(ll a, ll k) { return a & (~(1 << k)); }
bool getbit(ll a, ll k) { return 1 & (a >> k); }
ll setbit(ll a, ll k) { return a |= (1 << k); }

inline ll mulmod(ll x, ll n, ll _mod) { ll res = 0; while (n) { if (n & 1)res = (res + x) % _mod; x = (x + x) % _mod; n >>= 1; }return res; }
inline ll powmod(ll x, ll n, ll _mod) { ll res = 1; while (n) { if (n & 1)res = (res*x) % _mod; x = (x*x) % _mod; n >>= 1; }return res; }
inline ll gcd(ll a, ll b) { ll t; while (b) { a = a%b; t = a; a = b; b = t; }return a; }
inline int gcd(int a, int b) { int t; while (b) { a = a%b; t = a; a = b; b = t; }return a; }
inline ll lcm(ll a, ll b) { return a / gcd(a, b)*b; }
inline ll gcd(ll a, ll b, ll c) { return gcd(gcd(a, b), c); }
inline int gcd(int a, int b, int c) { return gcd(gcd(a, b), c); }
double dist(double ax, double ay, double bx, double by) { return sqrt(sqr(ax - bx) + sqr(ay - by)); }

//DBG
template<typename T, typename T2>void printarr(T  a[], T2 sz, T2 beg = 0) { for (T2 i = beg; i<sz; i++) cout << a[i] << " "; cout << endl; }
#define DBG(a)         cout<<#a<<"="<<(a)<<"\n"
#define DBG2(a,b)       cout<<#a<<"="<<(a)<<", "<<#b<<"="<<(b)<<"\n"
#define DBG3(a,b,c)     cout<<#a<<"="<<(a)<<", "<<#b<<"="<<(b)<<", "<<#c<<"="<<(c)<<"\n"

//Files
#define FILE_MODE(FILE) freopen(FILE".in", "r", stdin), freopen(FILE".out", "w", stdout)

//constants
#define PI    3.1415926535897932
#define INF   1011111111
#define LLINF 1000111000111000111LL
#define eps   1e-14
//-------------------------------------------------
#define N 300010

string m[4];

int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);

	int n;
	cin >> n;
	if (n == 1) {
		cout << "-1\n";
		return 0;
	}
	string c[2] = { "ab", "cd" };
	if (n % 2 != 0) {
		bool f = 0;
		for (int j = 0; j < n / 2; j++) {
			m[0] += c[0][f];
			m[0] += c[0][f];
			f = !f;
		}
		m[0] += 'z';
		f = 0;
		for (int j = 0; j < n / 2; j++) {
			m[1] += c[1][f];
			m[1] += c[1][f];
			f = !f;
		}
		m[1] += 'z';
		m[2] += 'z';
		f = 0;
		for (int j = 0; j < n / 2; j++) {
			m[2] += c[0][f];
			m[2] += c[0][f];
			f = !f;
		}
		m[3] += 'z';

		f = 0;
		for (int j = 0; j < n / 2; j++) {
			m[3] += c[1][f];
			m[3] += c[1][f];
			f = !f;
		}
	}
	else {
		if (n == 2) {
			m[0] = "aa";
			m[1] = "bb";
			m[2] = "aa";
			m[3] = "bb";

			return 0;
		}

		bool f = 0;
		for (int j = 0; j < n; j += 2) {
			m[0] += c[0][f];
			m[0] += c[0][f];
			f = !f;
		}

		m[1] += 'z';
		f = 0;
		for (int j = 0; j < n - 2; j += 2) {
			m[1] += c[1][f];
			m[1] += c[1][f];
			f = !f;
		}
		m[1] += 'z';
		m[2] += 'z';
		f = 0;
		for (int j = 0; j < n - 2; j += 2) {
			m[2] += c[0][f];
			m[2] += c[0][f];
			f = !f;
		}
		m[2] += 'z';

		f = 0;
		for (int j = 0; j < n; j += 2) {
			m[3] += c[1][f];
			m[3] += c[1][f];
			f = !f;
		}
	}
	rep(0, 4, i)
		cout << m[i] << endl;

	return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define ll long long int
#define pii pair<int,int>
#define rep(i, begin, end) for (__typeof(end) i = (begin) - ((begin) > (end)); i != (end) - ((begin) > (end)); i += 1 - 2 * ((begin) > (end)))
#define vi vector<int>
#define all(x) x.begin(),x.end()
#define show(x) cerr<<#x<<" is: "<<x<<endl;
#define countBits(x) __builtin_popcount(x)
#define mt make_tuple
#define eb emplace_back
#define pob pop_back
#define yes cout<<"YES"<<endl; return;
#define no cout<<"NO"<<endl; return;
#define flus fflush(stdin); fflush(stdout);
#define inf 1e9
#define mod 1000000007
#define N 200100
#define vc vector<char>
void solve(){
	int n;
	cin>>n;
	vc v1,v2,v3;
	v1.eb('y'); v1.eb('y'); v1.eb('z'); v1.eb('z');
	v2.eb('c'); v2.eb('c'); v2.eb('d'); v2.eb('d');
	v3.eb('x'); v3.eb('x'); v3.eb('e'); v3.eb('e');
	if(n%2==0){
		int ind=0;
		rep(i,0,n){
			cout<<v1[ind];
			ind++; ind%=4;
		}
		cout<<endl;
		ind=0;
		cout<<"b";
		rep(i,0,n-2){
			cout<<v2[ind];
			ind++; ind%=4;
		}
		cout<<"f"<<endl;
		ind=0;
		cout<<"b";
		rep(i,0,n-2){
			cout<<v3[ind];
			ind++; ind%=4;
		}
		cout<<"f"<<endl;
		ind=0;
		rep(i,0,n){
			cout<<v1[ind];
			ind++; ind%=4;
		}
		cout<<endl;
	} else{
		int ind=0;
		rep(i,0,n-1){
			cout<<v1[ind];
			ind++; ind%=4;
		}
		cout<<"p"<<endl;
		ind=0;
		rep(i,0,n-1){
			cout<<v2[ind];
			ind++; ind%=4;
		}
		cout<<"p"<<endl;
		cout<<"q";
		ind=0;
		rep(i,0,n-1){
			cout<<v1[ind];
			ind++; ind%=4;
		}
		cout<<endl;
		cout<<"q";
		ind=0;
		rep(i,0,n-1){
			cout<<v2[ind];
			ind++; ind%=4;
		}
		cout<<endl;
	}
}

int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	int t;
	// cin>>t;
	t=1;
	while(t--){
		solve();
	}
	cerr << "Time elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n\n";
}


#include<bits/stdc++.h>
using namespace std;
#define ll long long int
#define pii pair<int,int>
#define rep(i, begin, end) for (__typeof(end) i = (begin) - ((begin) > (end)); i != (end) - ((begin) > (end)); i += 1 - 2 * ((begin) > (end)))
#define vi vector<int>
#define all(x) x.begin(),x.end()
#define show(x) cerr<<#x<<" is: "<<x<<endl;
#define countBits(x) __builtin_popcount(x)
#define mt make_tuple
#define eb emplace_back
#define pob pop_back
#define yes cout<<"YES"<<endl; return;
#define no cout<<"NO"<<endl; return;
#define flus fflush(stdin); fflush(stdout);
#define inf 1e9
#define mod 1000000007
#define N 200100
#define vc vector<char>
void solve(){
	int n;
	cin>>n;
	vc v1,v2,v3;
	v1.eb('y'); v1.eb('y'); v1.eb('z'); v1.eb('z');
	v2.eb('c'); v2.eb('c'); v2.eb('d'); v2.eb('d');
	v3.eb('x'); v3.eb('x'); v3.eb('e'); v3.eb('e');
	if(n%2==0){
		int ind=0;
		rep(i,0,n){
			cout<<v1[ind];
			ind++; ind%=4;
		}
		cout<<endl;
		ind=0;
		cout<<"b";
		rep(i,0,n-2){
			cout<<v2[ind];
			ind++; ind%=4;
		}
		cout<<"f"<<endl;
		ind=0;
		cout<<"b";
		rep(i,0,n-2){
			cout<<v3[ind];
			ind++; ind%=4;
		}
		cout<<"f"<<endl;
		ind=0;
		rep(i,0,n){
			cout<<v1[ind];
			ind++; ind%=4;
		}
		cout<<endl;
	} else{
		int ind=0;
		rep(i,0,n-1){
			cout<<v1[ind];
			ind++; ind%=4;
		}
		cout<<"p"<<endl;
		ind=0;
		rep(i,0,n-1){
			cout<<v2[ind];
			ind++; ind%=4;
		}
		cout<<"p"<<endl;
		cout<<"p";
		ind=0;
		rep(i,0,n-1){
			cout<<v1[ind];
			ind++; ind%=4;
		}
		cout<<endl;
		cout<<"p";
		ind=0;
		rep(i,0,n-1){
			cout<<v2[ind];
			ind++; ind%=4;
		}
		cout<<endl;
	}
}

int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	int t;
	// cin>>t;
	t=1;
	while(t--){
		solve();
	}
	cerr << "Time elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n\n";
}


#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef vector<ll> vi;
typedef pair<ll, ll> ii;
typedef vector<ii> vii;
typedef set<ll> si;
typedef map<ll, ll> mii;
#define hell 1000000007
#define MAX 1000000000
#define max_int 1000000
#define F first
#define re 15000000
#define S second
#define pb push_back
#define all(a)  (a).begin(),(a).end()
#define rep(i,a,b) for(ll i = a;i<b;i++)
#define pi 3.1415926536
#define r0 return 0

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    //freopen("input.txt", "r", stdin);
    //freopen("output.txt", "w", stdout);

    int n,r,t;
    cin>>n;
    if(n==1)
    {
        cout<<"a"<<'\n'<<"a"<<'\n'<<"b"<<'\n'<<"b";
        r0;
    }
    if(n==2)
    {
        cout<<"aa"<<'\n'<<"bb"<<'\n'<<"aa"<<'\n'<<"bb";
        r0;
    }
    if(n&1)
    {
        r=1;
        for(int i=0;i<(n-1)/2;i++)
        {
            if(r)
            {
                cout<<"aa";
                r=0;
            }
            else
            {
                cout<<"bb";
                r=1;
            }
        }
        cout<<'c'<<'\n';
        r=1;
        if((n-1)/2 & 1)
            t=1;
        else
            t=0;
        for(int i=0;i<(n-1)/2;i++)
        {
            if(t)
            {
                cout<<"dd";
                t=0;
            }
            else
            {
                cout<<"cc";
                t=1;
            }
        }
        cout<<'c'<<'\n';
        if((n-1)/2 & 1)
            t=0;
        else
            t=1;
        if(t)
            cout<<'d';
        else
            cout<<'c';
        r=1;
        for(int i=0;i<(n-1)/2;i++)
        {
            if(r)
            {
                cout<<"aa";
                r=0;
            }
            else
            {
                cout<<"bb";
                r=1;
            }
        }
        cout<<'\n';
        if((n-1)/2 & 1)
            t=1;
        else
            t=0;
        if(t)
        {
            cout<<'c';
            t=0;
        }
        else
        {
            cout<<'d';
            t=1;
        }
        for(int i=0;i<(n-1)/2;i++)
        {
            if(t)
            {
                cout<<"cc";
                t=0;
            }
            else
            {
                cout<<"dd";
                t=1;
            }
        }

    }
    else
    {
        r=1;
        for(int i=0;i<n/2;i++)
        {
            if(r)
            {
                cout<<"aa";
                r=0;
            }
            else
            {
                cout<<"bb";
                r=1;
            }
        }
        cout<<'\n'<<'e';
        r=1;
        for(int i=1;i<n/2;i++)
        {
            if(r)
            {
                cout<<"cc";
                r=0;
            }
            else
            {
                cout<<"dd";
                r=1;
            }
        }
        cout<<'e'<<'\n'<<'e';
        r=1;
        for(int i=1;i<n/2;i++)
        {
            if(r)
            {
                cout<<"aa";
                r=0;
            }
            else
            {
                cout<<"bb";
                r=1;
            }
        }
        cout<<'e'<<'\n';
        r=1;
        for(int i=0;i<n/2;i++)
        {
            if(r)
            {
                cout<<"cc";
                r=0;
            }
            else
            {
                cout<<"dd";
                r=1;
            }
        }
    }

}


#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef vector<ll> vi;
typedef pair<ll, ll> ii;
typedef vector<ii> vii;
typedef set<ll> si;
typedef map<ll, ll> mii;
#define hell 1000000007
#define MAX 1000000000
#define max_int 1000000
#define F first
#define re 15000000
#define S second
#define pb push_back
#define all(a)  (a).begin(),(a).end()
#define rep(i,a,b) for(ll i = a;i<b;i++)
#define pi 3.1415926536
#define r0 return 0

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    //freopen("input.txt", "r", stdin);
    //freopen("output.txt", "w", stdout);

    int n,r,t;
    cin>>n;
    if(n&1)
    {
        r=1;
        for(int i=0;i<(n-1)/2;i++)
        {
            if(r)
            {
                cout<<"aa";
                r=0;
            }
            else
            {
                cout<<"bb";
                r=1;
            }
        }
        cout<<'c'<<'\n';
        r=1;
        if((n-1)/2 & 1)
            t=1;
        else
            t=0;
        for(int i=0;i<(n-1)/2;i++)
        {
            if(t)
            {
                cout<<"dd";
                t=0;
            }
            else
            {
                cout<<"cc";
                t=1;
            }
        }
        cout<<'c'<<'\n';
        if((n-1)/2 & 1)
            t=0;
        else
            t=1;
        if(t)
            cout<<'d';
        else
            cout<<'c';
        r=1;
        for(int i=0;i<(n-1)/2;i++)
        {
            if(r)
            {
                cout<<"aa";
                r=0;
            }
            else
            {
                cout<<"bb";
                r=1;
            }
        }
        cout<<'\n';
        if((n-1)/2 & 1)
            t=1;
        else
            t=0;
        if(t)
        {
            cout<<'c';
            t=0;
        }
        else
        {
            cout<<'d';
            t=1;
        }
        for(int i=0;i<(n-1)/2;i++)
        {
            if(t)
            {
                cout<<"cc";
                t=0;
            }
            else
            {
                cout<<"dd";
                t=1;
            }
        }

    }
    else
    {
        r=1;
        for(int i=0;i<n/2;i++)
        {
            if(r)
            {
                cout<<"aa";
                r=0;
            }
            else
            {
                cout<<"bb";
                r=1;
            }
        }
        cout<<'\n'<<'e';
        r=1;
        for(int i=1;i<n/2;i++)
        {
            if(r)
            {
                cout<<"cc";
                r=0;
            }
            else
            {
                cout<<"dd";
                r=1;
            }
        }
        cout<<'e'<<'\n'<<'e';
        r=1;
        for(int i=1;i<n/2;i++)
        {
            if(r)
            {
                cout<<"aa";
                r=0;
            }
            else
            {
                cout<<"bb";
                r=1;
            }
        }
        cout<<'e'<<'\n';
        r=1;
        for(int i=0;i<n/2;i++)
        {
            if(r)
            {
                cout<<"cc";
                r=0;
            }
            else
            {
                cout<<"dd";
                r=1;
            }
        }
    }

}


#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef vector<ll> vi;
typedef pair<ll, ll> ii;
typedef vector<ii> vii;
typedef set<ll> si;
typedef map<ll, ll> mii;
#define hell 1000000007
#define MAX 1000000000
#define max_int 1000000
#define F first
#define re 15000000
#define S second
#define pb push_back
#define all(a)  (a).begin(),(a).end()
#define rep(i,a,b) for(ll i = a;i<b;i++)
#define pi 3.1415926536
#define r0 return 0

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    //freopen("input.txt", "r", stdin);
    //freopen("output.txt", "w", stdout);

    int n,r,t;
    cin>>n;
    if(n==1)
    {
        cout<<"a"<<'\n'<<"b"<<'\n'<<"a"<<'\n'<<"b";
        r0;
    }
    if(n==2)
    {
        cout<<"aa"<<'\n'<<"bb"<<'\n'<<"aa"<<'\n'<<"bb";
        r0;
    }
    if(n&1)
    {
        r=1;
        for(int i=0;i<(n-1)/2;i++)
        {
            if(r)
            {
                cout<<"aa";
                r=0;
            }
            else
            {
                cout<<"bb";
                r=1;
            }
        }
        cout<<'c'<<'\n';
        r=1;
        if((n-1)/2 & 1)
            t=1;
        else
            t=0;
        for(int i=0;i<(n-1)/2;i++)
        {
            if(t)
            {
                cout<<"dd";
                t=0;
            }
            else
            {
                cout<<"cc";
                t=1;
            }
        }
        cout<<'c'<<'\n';
        if((n-1)/2 & 1)
            t=0;
        else
            t=1;
        if(t)
            cout<<'d';
        else
            cout<<'c';
        r=1;
        for(int i=0;i<(n-1)/2;i++)
        {
            if(r)
            {
                cout<<"aa";
                r=0;
            }
            else
            {
                cout<<"bb";
                r=1;
            }
        }
        cout<<'\n';
        if((n-1)/2 & 1)
            t=1;
        else
            t=0;
        if(t)
        {
            cout<<'c';
            t=0;
        }
        else
        {
            cout<<'d';
            t=1;
        }
        for(int i=0;i<(n-1)/2;i++)
        {
            if(t)
            {
                cout<<"cc";
                t=0;
            }
            else
            {
                cout<<"dd";
                t=1;
            }
        }

    }
    else
    {
        r=1;
        for(int i=0;i<n/2;i++)
        {
            if(r)
            {
                cout<<"aa";
                r=0;
            }
            else
            {
                cout<<"bb";
                r=1;
            }
        }
        cout<<'\n'<<'e';
        r=1;
        for(int i=1;i<n/2;i++)
        {
            if(r)
            {
                cout<<"cc";
                r=0;
            }
            else
            {
                cout<<"dd";
                r=1;
            }
        }
        cout<<'e'<<'\n'<<'e';
        r=1;
        for(int i=1;i<n/2;i++)
        {
            if(r)
            {
                cout<<"aa";
                r=0;
            }
            else
            {
                cout<<"bb";
                r=1;
            }
        }
        cout<<'e'<<'\n';
        r=1;
        for(int i=0;i<n/2;i++)
        {
            if(r)
            {
                cout<<"cc";
                r=0;
            }
            else
            {
                cout<<"dd";
                r=1;
            }
        }
    }

}


#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef vector<ll> vi;
typedef pair<ll, ll> ii;
typedef vector<ii> vii;
typedef set<ll> si;
typedef map<string, ll> msi;
#define hell 1000000007
#define MAX 1000000000
#define max_int 1000000
#define F first
#define re 15000000
#define S second
#define pb push_back
#define all(a)  (a).begin(),(a).end()
#define rep(i,a,b) for(ll i = a;i<b;i++)
#define pi 3.1415926536
#define r0 return 0

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    int n,r;
    cin>>n;
    if(n&1)
    {
        r=1;
        for(int i=0;i<(n-1)/2;i++)
        {
            if(r)
            {
                cout<<"aa";
                r=0;
            }
            else
            {
                cout<<"bb";
                r=1;
            }
        }
        cout<<"e";
        cout<<'\n';
        r=1;
        for(int i=0;i<n-1;i++)
        {
            if(r)
            {
                cout<<"c";
                r=0;
            }
            else
            {
                cout<<"d";
                r=1;
            }
        }
        cout<<"e";
        cout<<'\n';
        r=1;
        for(int i=0;i<n-1;i++)
        {
            if(r)
            {
                cout<<"c";
                r=0;
            }
            else
            {
                cout<<"d";
                r=1;
            }
        }
        cout<<"f";
        cout<<'\n';
        r=1;
        for(int i=0;i<(n-1)/2;i++)
        {
            if(r)
            {
                cout<<"aa";
                r=0;
            }
            else
            {
                cout<<"bb";
                r=1;
            }
        }
        cout<<"f";
    }
    else
    {
        r=1;
        for(int i=0;i<n/2;i++)
        {
            if(r)
            {
                cout<<"aa";
                r=0;
            }
            else
            {
                cout<<"bb";
                r=1;
            }
        }
        cout<<'\n';
        r=1;
        for(int i=0;i<n;i++)
        {
            if(r)
            {
                cout<<"c";
                r=0;
            }
            else
            {
                cout<<"d";
                r=1;
            }
        }
        cout<<'\n';
        r=1;
        for(int i=0;i<n;i++)
        {
            if(r)
            {
                cout<<"c";
                r=0;
            }
            else
            {
                cout<<"d";
                r=1;
            }
        }
        cout<<'\n';
        r=1;
        for(int i=0;i<n/2;i++)
        {
            if(r)
            {
                cout<<"aa";
                r=0;
            }
            else
            {
                cout<<"bb";
                r=1;
            }
        }
    }

}


#include <bits/stdc++.h>
#include <fstream>
using namespace std;
int main()
{
    int n;
    cin>>n;
    int r=n/2,i;
    if(n%2)
    {

    	for(i=0;i<r;i++)
    	{
    		if(i%2)
    		cout<<"aa";
    		else
    		cout<<"bb";
		}
		cout<<'c';
		cout<<"\n";
		for(i=0;i<r;i++)
    	{
    		if(i%2)
    		cout<<"dd";
    		else
    		cout<<"ee";
		}
		cout<<'c';
		cout<<"\n";

		cout<<'f';
		for(i=0;i<r;i++)
    	{
    		if(i%2)
    		cout<<"gg";
    		else
    		cout<<"hh";
		}
		cout<<"\n";
		cout<<'f';
		for(i=0;i<r;i++)
    	{
    		if(i%2)
    		cout<<"ii";
    		else
    		cout<<"jj";
		}
		cout<<"\n";

	}
	else
	{
		if(n==2)
	   {
		cout<<"yy\n";
		cout<<"be\n";
		cout<<"be\n";
		cout<<"yy\n";
	   }
	   else
	   {

		for(i=0;i<r;i++)
		{
			if(i%2)
			cout<<"zz";
			else
			cout<<"yy";
		}
		cout<<"\n";

		cout<<'b';
		for(i=0;i<r-1;i++)
		{
			if(i%2)
			cout<<"aa";
			else
			cout<<"cc";
		}
		cout<<'b';
		cout<<"\n";

		cout<<'b';
		for(i=0;i<r-1;i++)
		{
			if(i%2)
			cout<<"dd";
			else
			cout<<"ee";
		}
		cout<<'b';
		cout<<"\n";

		for(i=0;i<r;i++)
		{
			if(i%2)cout<<"zz";
			else cout<<"yy";
		}
		cout<<"\n";
	   }
	}
}


#include <bits/stdc++.h>
#include <fstream>
using namespace std;
int main()
{
    int n;
    cin>>n;
    if(n%2)
    {
    	cout<<-1;
    	return 0;
	}
	if(n==2)
	{
		cout<<"yy\n";
		cout<<"be\n";
		cout<<"be\n";
		cout<<"yy\n";
	}
	else
	{
		int r=n/2,i;
		for(i=0;i<r;i++)
		{
			if(i%2)
			cout<<"zz";
			else
			cout<<"yy";
		}
		cout<<"\n";

		cout<<'b';
		for(i=0;i<r-1;i++)
		{
			if(i%2)
			cout<<"aa";
			else
			cout<<"cc";
		}
		cout<<'b';
		cout<<"\n";

		cout<<'b';
		for(i=0;i<r-1;i++)
		{
			if(i%2)
			cout<<"dd";
			else
			cout<<"ee";
		}
		cout<<'b';
		cout<<"\n";

		for(i=0;i<r;i++)
		{
			if(i%2)cout<<"zz";
			else cout<<"yy";
		}
		cout<<"\n";
	}
}


#include <bits/stdc++.h>
#include <string>
#include <cmath>
#include <sstream>
//#include <unordered_map>
#define FOR(i, a, b) for (int i = (a); i < (b); i++)
#define FORD(i, a, b) for (int i = (a - 1); i >= (b); i--)
#define pb(a) push_back(a)
#define mp(a, b) make_pair(a, b)
typedef long long int ll;
using namespace std;
ll mod = 1000000007;
//ll mod=67280421310721;
//ll mod=998244353;
ll powmod(ll a, ll b)
{
    ll res = 1;
    a %= mod;
    assert(b >= 0);
    for (; b; b >>= 1)
    {
        if (b & 1)
            res = res * a % mod;
        a = a * a % mod;
    }
    return res;
}
ll gcd(ll a, ll b) { return b ? gcd(b, a % b) : a; }

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    int t = 1;
    while (t--)
    {
        ll  n,m,flag = 1,s,f,t=0,ans=0,k,u,v;

        cin>>n;

        if(n&1)
        {
            cout<<-1<<endl;
        }
        else{
            FOR(i,0,n)
            {
                for(int j=0;j<n;j+=2)
                {

                        cout<<char('a'+(j+i)%26)<<char('a'+(i+j)%26);
                }
                cout<<endl;
            }
        }

    }

    // your code goes here
    return 0;
}


#include<bits/stdc++.h>
#define LL long long

using namespace std;

int n;
int a[555555];
char s[555555];

void op_ar(int *ar, int num) {
    for(int i = 1; i <= num; ++i) {
        printf("%d", ar[i]);
        if(i == num) printf("\n");
        else printf(" ");
    }
}

int main() {
    scanf("%d", &n);
    if(n == 1) {
        printf("x\nx\ny\ny\n");
        return 0;
    }
    if(n & 1) {
        for(int i = 1; i <= n / 2; ++i) {
            if(i % 2 == 0) printf("aa");
            else printf("bb");
        }
        printf("x\n");
        for(int i = 1; i <= n / 2; ++i) {
            if(i % 2 == 0) printf("cc");
            else printf("dd");
        }
        printf("x\n");
        printf("y");
        for(int i = 1; i <= n / 2; ++i) {
            if(i % 2 == 0) printf("ee");
            else printf("ff");
        }
        printf("\n");
        printf("y");
        for(int i = 1; i <= n / 2; ++i) {
            if(i % 2 == 0) printf("gg");
            else printf("hh");
        }
        printf("\n");
    }
    else  {
        for(int i = 1; i <= n / 2; ++i) {
            if(i % 2 == 1) printf("aa");
            else printf("bb");
        }
        printf("\n");
        printf("x");
        for(int i = 1; i <= n / 2 - 1; ++i) {
            if(i % 2 == 1) printf("cc");
            else printf("dd");
        }
        printf("y\n");
        printf("x");
        for(int i = 1; i <= n / 2 - 1; ++i) {
            if(i % 2 == 1) printf("ee");
            else printf("ff");
        }
        printf("y\n");
        for(int i = 1; i <= n / 2; ++i) {
            if(i % 2 == 1) printf("aa");
            else printf("bb");
        }
        printf("\n");
    }
    return 0;
}


#include<bits/stdc++.h>
#define LL long long

using namespace std;

int n;
int a[555555];
char s[555555];

void op_ar(int *ar, int num) {
    for(int i = 1; i <= num; ++i) {
        printf("%d", ar[i]);
        if(i == num) printf("\n");
        else printf(" ");
    }
}

int main() {
    scanf("%d", &n);
    if(n == 1) printf("x\nx\ny\ny\n");
    if(n & 1) {
        for(int i = 1; i <= n / 2; ++i) {
            if(i % 2 == 0) printf("aa");
            else printf("bb");
        }
        printf("x\n");
        for(int i = 1; i <= n / 2; ++i) {
            if(i % 2 == 0) printf("cc");
            else printf("dd");
        }
        printf("x\n");
        printf("y");
        for(int i = 1; i <= n / 2; ++i) {
            if(i % 2 == 0) printf("ee");
            else printf("ff");
        }
        printf("\n");
        printf("y");
        for(int i = 1; i <= n / 2; ++i) {
            if(i % 2 == 0) printf("gg");
            else printf("hh");
        }
        printf("\n");
    }
    else  {
        for(int i = 1; i <= n / 2; ++i) {
            if(i % 2 == 1) printf("aa");
            else printf("bb");
        }
        printf("\n");
        printf("x");
        for(int i = 1; i <= n / 2 - 1; ++i) {
            if(i % 2 == 1) printf("cc");
            else printf("dd");
        }
        printf("y\n");
        printf("x");
        for(int i = 1; i <= n / 2 - 1; ++i) {
            if(i % 2 == 1) printf("ee");
            else printf("ff");
        }
        printf("y\n");
        for(int i = 1; i <= n / 2; ++i) {
            if(i % 2 == 1) printf("aa");
            else printf("bb");
        }
        printf("\n");
    }
    return 0;
}


#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <vector>
#include <string.h>
#include <limits.h>
#include <cfloat>
#include <stack>
#include <queue>
#include <list>
#include <set>
#include <map>
#include <bitset>
#include <cassert>
#include <unordered_map>
#include <unordered_set>
using namespace std;
#define mem(flag) memset(flag,0,sizeof(flag))
#define Mem(flag) memset(flag,-1,sizeof(flag))
#define read(a) a=getInt()
#define En printf("\n")
#define P(a) printf("%d ",a)
#define Pn(a) printf("%d\n",a)
#define dbg(x) cout << (#x) << " = " << (x) << endl
#define rep(flag, a, b) for (int flag = (a); flag <= (b); ++flag)
#define Rep(flag, a, b) for (int flag = (a); flag >= (b); --flag)

const int MAX = 120;
char ans[4][MAX];
int n;

int main() {
    scanf("%d", &n);
    if (n % 2 == 0) {
        int x = 0;
        int f = 0;
        while (x <= n - 2) {
            if (f == 0) ans[0][x] = ans[0][x + 1] = 'a';
            else ans[0][x] = ans[0][x + 1] = 'b';
            x = x + 2;
            f = f ^ 1;
        }
        ans[1][0] = ans[2][0] = 'c', ans[1][n - 1] = ans[2][n - 1] = 'd';
        x = 1, f = 0;
        while (x <= n - 3) {
            if (f == 0) ans[1][x] = ans[1][x + 1] = 'e';
            else ans[1][x] = ans[1][x + 1] = 'f';
            x = x + 2;
            f = f ^ 1;
        }
        x = 1, f = 0;
        while (x <= n - 3) {
            if (f == 0) ans[2][x] = ans[2][x + 1] = 'f';
            else ans[2][x] = ans[2][x + 1] = 'e';
            x = x + 2;
            f = f ^ 1;
        }
        x = 0, f = 0;
        while (x <= n - 2) {
            if (f == 0) ans[3][x] = ans[3][x + 1] = 'g';
            else ans[3][x] = ans[3][x + 1] = 'h';
            x = x + 2;
            f = f ^ 1;
        }
    } else {
        int x = 0, f = 0;
        ans[0][n - 1] = ans[1][n - 1] = 'c';
        while (x <= n - 3) {
            if (f == 0) ans[0][x] = ans[0][x + 1] = 'a';
            else ans[0][x] = ans[0][x + 1] = 'b';
            x = x + 2;
            f = f ^ 1;
        }
        x = 0, f = 0;
        while (x <= n - 3) {
            if (f == 0) ans[1][x] = ans[1][x + 1] = 'b';
            else ans[1][x] = ans[1][x + 1] = 'a';
            x = x + 2;
            f = f ^ 1;
        }
        ans[2][0] = ans[3][0] = 'd';
        x = 1, f = 0;
        while (x <= n - 2) {
            if (f == 0) ans[2][x] = ans[2][x + 1] = 'e';
            else ans[2][x] = ans[2][x + 1] = 'f';
            x = x + 2;
            f = f ^ 1;
        }
        x = 1, f = 0;
        while (x <= n - 2) {
            if (f == 0) ans[3][x] = ans[3][x + 1] = 'f';
            else ans[3][x] = ans[3][x + 1] = 'e';
            x = x + 2;
            f = f ^ 1;
        }
    }
    for (int i = 0; i < 4; i++) {
        for (int j = 0; j < n; j++) printf("%c", ans[i][j]);
        En;
    }
    return 0;
}


#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <vector>
#include <string.h>
#include <limits.h>
#include <cfloat>
#include <stack>
#include <queue>
#include <list>
#include <set>
#include <map>
#include <bitset>
#include <cassert>
#include <unordered_map>
#include <unordered_set>
using namespace std;
#define mem(flag) memset(flag,0,sizeof(flag))
#define Mem(flag) memset(flag,-1,sizeof(flag))
#define read(a) a=getInt()
#define En printf("\n")
#define P(a) printf("%d ",a)
#define Pn(a) printf("%d\n",a)
#define dbg(x) cout << (#x) << " = " << (x) << endl
#define rep(flag, a, b) for (int flag = (a); flag <= (b); ++flag)
#define Rep(flag, a, b) for (int flag = (a); flag >= (b); --flag)

const int MAX = 120;
char ans[4][MAX];
int n;

int main() {
    scanf("%d", &n);
    if (n % 2 == 0) {
        int x = 0;
        int f = 0;
        while (x <= n - 2) {
            if (f == 0) ans[0][x] = ans[0][x + 1] = 'a';
            else ans[0][x] = ans[0][x + 1] = 'b';
            x = x + 2;
            f = f ^ 1;
        }
        ans[1][0] = ans[2][0] = 'c', ans[1][n - 1] = ans[2][n - 1] = 'd';
        x = 1, f = 0;
        while (x <= n - 3) {
            if (f == 1) ans[1][x] = ans[1][x + 1] = 'e';
            else ans[1][x] = ans[1][x + 1] = 'f';
            x = x + 2;
            f = f ^ 1;
        }
        x = 1, f = 0;
        while (x <= n - 3) {
            if (f == 2) ans[2][x] = ans[2][x + 1] = 'f';
            else ans[2][x] = ans[2][x + 1] = 'e';
            x = x + 2;
            f = f ^ 1;
        }
        x = 0, f = 0;
        while (x <= n - 2) {
            if (f == 0) ans[3][x] = ans[3][x + 1] = 'g';
            else ans[3][x] = ans[3][x + 1] = 'h';
            x = x + 2;
            f = f ^ 1;
        }
    } else {
        int x = 0, f = 0;
        ans[0][n - 1] = ans[1][n - 1] = 'c';
        while (x <= n - 3) {
            if (f == 0) ans[0][x] = ans[0][x + 1] = 'a';
            else ans[0][x] = ans[0][x + 1] = 'b';
            x = x + 2;
            f = f ^ 1;
        }
        x = 0, f = 0;
        while (x <= n - 3) {
            if (f == 0) ans[1][x] = ans[1][x + 1] = 'b';
            else ans[1][x] = ans[1][x + 1] = 'a';
            x = x + 2;
            f = f ^ 1;
        }
        ans[2][0] = ans[3][0] = 'd';
        x = 1, f = 0;
        while (x <= n - 2) {
            if (f == 0) ans[2][x] = ans[2][x + 1] = 'e';
            else ans[2][x] = ans[2][x + 1] = 'f';
            x = x + 2;
            f = f ^ 1;
        }
        x = 1, f = 0;
        while (x <= n - 2) {
            if (f == 0) ans[3][x] = ans[3][x + 1] = 'f';
            else ans[3][x] = ans[3][x + 1] = 'e';
            x = x + 2;
            f = f ^ 1;
        }
    }
    for (int i = 0; i < 4; i++) {
        for (int j = 0; j < n; j++) printf("%c", ans[i][j]);
        En;
    }
    return 0;
}


/**
▂▃▅▇█▓▒░۩۞۩ ۩۞۩░▒▓█▇▅▃▂
Make it happen now, not tomorrow.
Tomorrow is a  loser's excuse.
▂▃▅▇█▓▒░۩۞۩ ۩۞۩░▒▓█▇▅▃▂
**/
#ifndef _GLIbCXX_NO_ASSERT
#include <cassert>
#endif
#include <cctype>
#include <cerrno>
#include <cfloat>
#include <ciso646>
#include <climits>
#include <clocale>
#include <cmath>
#include <csetjmp>
#include <csignal>
#include <cstdarg>
#include <cstddef>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>

#if __cplu >= 201103L
#include <ccomplex>
#include <cfenv>
#include <cinttypes>
#include <cstdalign>
#include <cstdbool>
#include <cstdint>
#include <ctgmath>
#include <cwchar>
#include <cwctype>
#include <cstring>
#endif

// C++
#include <algorithm>
#include <bitset>
#include <complex>
#include <deque>
#include <exception>
#include <fstream>
#include <functional>
#include <iomanip>
#include <ios>
#include <iosfwd>
#include <iostream>
#include <istream>
#include <iterator>
#include <limits>
#include <list>
#include <locale>
#include <map>
#include <memory>
#include <new>
#include <numeric>
#include <ostream>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <stdexcept>
#include <streambuf>
#include<random>
#include <chrono>
#include <string>
#include <typeinfo>
#include <utility>
#include <valarray>
#include <vector>

#if __cplu >= 201103L
#include <array>
#include <atomic>
#include <chrono>
#include <condition_variable>
#include <forward_list>
#include <future>
#include <initializer_list>
#include <mutex>
#include <random>
#include <ratio>
#include <regex>
#include <scoped_allocator>
#include <system_error>
#include <thread>
#include <tuple>
#include <typeindex>
#include <type_traits>
#include <unordered_map>
#include <unordered_set>
#include <time.h>
#endif
#define __ ios_base::sync_with_stdio(false);cin.tie(NULL);
using namespace std;
// #define INF 0x7f7f7f7f
#define ull unsigned long long int
#define pii pair<int,int>
#define ll long long int
#define ld long double
#define MSET(x,y) memset(x,y,sizeof(x))
// #define l long
#define isset(x,i) (x>>i)&1
#define se second
#define AlphaSize 26
#define fi first
#define NIL 0
#define UNVISITED -1
#define EXPOLORED 0
#define mk make_pair
#define pb push_back
#define sc(n) scanf("%d",&n)
#define NIL 0
#define db double
#define pii pair<int,int>
#define eps 1e-8
#define inrange(x,y,n,m) ((x>=1 && y>=1 && x<=n && y<=m))
#define all(x) x.begin(),x.end()
#define me(u,v,w) make_pair(w,make_pair(u,v))
#define rep(i,a,n) for (int i=a;i<n;i++)
#define per(i,a,n) for (int i=n-1;i>=a;i--)
#define foreach(e, x) for(__typeof(x.begin()) e = x.begin(); e != x.end(); ++ e)
// #define add(a,b) (a + b >= MOD ? a+b-MOD:a+b)
#define hs(c1,c2) (256*min(c1,c2) + max(c1,c2))
#define REP(i,n) for((i)=0;(i)<(int)(n);(i)++)
typedef struct{ int sum,suf,pre,max;} Node;
int toint(const string &s) { stringstream ss; ss << s; int x; ss >> x; return x; }
const int MAXN = 2e5+100;
const int UP = 31;
const ll highest = 1e18;
const double Phi =  1.618033988749894;
const int logn = 20;
const double root5 = 2.236067977;
/**
▂▃▅▇█▓▒░۩۞۩ ۩۞۩░▒▓█▇▅▃▂
Make it happen now, not tomorrow.
Tomorrow is a loser's excuse.
▂▃▅▇█▓▒░۩۞۩ ۩۞۩░▒▓█▇▅▃▂
*/
//Geometry
// const double pi = acos(-1.0);
// const double tau = 2.0*pi;
// int sig(double x){
//  return x<-eps?-1:x>eps?1:0;
// }
// class Vector{
//  double x,y;
//  Vector(){}
//  Vector(double x,double y):x(x),y(y){}
//  Vector operator -()const{return Vector(-x,-y);}
//  Vector operator +(const Vector &v)const{return Vector(x+v.x,y+v.y);}
//  Vector operator -(const Vector &v) const {return Vector(x-v.x, y-v.y);}
//     Vector operator *(const double &s) const {return Vector(x * s, y * s);}
//     Vector operator /(const double &s) const {return Vector(x / s, y / s);}

//     double operator *(const Vector &v) const {return x*v.x + y*v.y;}
//     double operator ^(const Vector &v) const {return x*v.y - y*v.x;}

//     // rotate vector (Right/Left hand)
//     Vector  R(double co, double si) {return Vector(x*co-y*si, y*co+x*si);}
//     Vector  L(double co, double si) {return Vector(x*co+y*si, y*co-x*si);}
//     Vector  R(double th) {return R(cos(th), sin(th));}
//     Vector  L(double th) {return L(cos(th), sin(th));}

//     double len2() {return x*x + y*y;}
//     double len()  {return sqrt(len2());}
//     double ang()  {return atan2(y, x);}  // angle of vector
//     Vector e(double s = 1.0) {return *this / len() * s;}
// };
// typedef Vector Point;
// class Line{
// public:
//  Point a,b;
//  Line(){}
//  Line(Point a,Point b):a(a),b(b){}
// };
// class Circle{
// public:
//  double r;
//  Circle(){}
//  Circle(Point o,double r):o(o),r(r){}
//  // interior          (d < R - r)         ----> -2
//     // interior tangents (d = R - r)         ----> -1
//     // concentric        (d = 0)
//     // secants           (R - r < d < R + r) ---->  0
//     // exterior tangents (d = R + r)         ---->  1
//     // exterior          (d > R + r)         ---->  2
//     int posi(Circle c){
//      double d = (o - c.o).len();
//      int in = sig(d - fabs(r - c.r)),ex = sig()
//      return in<0?-2:in==0?-1:ex==0?1:ex>0?2:0;
//     }
//      // IMPORTANT: Ensure this->posi(c) = 0
//     // chord(弦) of two circle
//     // two points is ccw in *this circle
//     Line chord(Circle c){
//      Vector v = c.o - o;
//      double co = (pow2(r) + v.len2() - pow2(c.r))/(2*r*v.len());
//      double si = sqrt(fabs(1.0 - pow2(co)));
//      return Line(v.L(co,si).e(r) + o,v.R(co,si).e(r) + o);
//     }
// };
// // -PI <= th <= PI
// struct Range {
//     double t;
//     int evt;
//     Point p;
//     Range() {}
//     Range(double t, int evt, Point p) : t(t), evt(evt), p(p) {}

//     bool operator <(const Range &s) const {
//         return sig(t - s.t) < 0 || (sig(t - s.t) == 0 && evt > s.evt);
//     }
// };
// http://codeforces.com/contest/85/problem/A (3) //MODULO / SHIFT
const int N = 110;
int n;
char s[4][N];
int main(){
    scanf("%d",&n);
    if(n==1){
        puts("a");
        puts("a");
        puts("b");
        puts("b");
        return 0;
    }else if(n==2){
        puts("aa");
        puts("dd");
        puts("cc");
        puts("bb");
        return 0;
    }
    if(n%2 == 0){
        for(int i=0;i<n/2;i++){
            s[0][i+i] = s[0][i+i+1] = 'a'+i%2;
            s[3][i+i] = s[3][i+i+1] = 'c'+i%2;
        }
        for(int i=0;i<n/2-1;i++){
            s[1][i+i+2] = s[1][i+i+1] = 'e'+i%2;
            s[2][i+i+2] = s[2][i+i+1] = 'g'+i%2;
        }
        s[1][0] = s[2][0] = 'x';
        s[1][n-1] = s[2][n-1] = 'y';
    }else{
        for(int i=0;i<n/2;i++){
            s[0][i+i] = s[0][i+i+1] = 'a'+i%2;
            s[1][i+i] = s[1][i+i+1] = 'c'+i%2;
            s[2][i+i+2] = s[2][i+i+1] = 'e'+i%2;
            s[3][i+i+2] = s[3][i+i+1] = 'g'+i%2;
        }
        s[2][0] = s[3][0] = 'x';
        s[0][n-1] = s[1][n-1]='y';
    }
    for(int i=0;i<4;++i){
        puts(s[i]);
    }
    return 0;
}
//-------******-------
/*
    Closest Pair of Points
    struct pt {
        int x, y, id;
    };

    struct cmp_x {
        bool operator()(const pt & a, const pt & b) const {
            return a.x < b.x || (a.x == b.x && a.y < b.y);
        }
    };

    struct cmp_y {
        bool operator()(const pt & a, const pt & b) const {
            return a.y < b.y;
        }
    };

    int n;
    vector<pt> a;

    double mindist;
    pair<int, int> best_pair;

    void upd_ans(const pt & a, const pt & b) {
        double dist = sqrt((a.x - b.x)*(a.x - b.x) + (a.y - b.y)*(a.y - b.y));
        if (dist < mindist) {
            mindist = dist;
            best_pair = {a.id, b.id};
        }
    }

    vector<pt> t;

    void rec(int l, int r) {
        if (r - l <= 3) {
            for (int i = l; i < r; ++i) {
                for (int j = i + 1; j < r; ++j) {
                    upd_ans(a[i], a[j]);
                }
            }
            sort(a.begin() + l, a.begin() + r, cmp_y());
            return;
        }

        int m = (l + r) >> 1;
        int midx = a[m].x;
        rec(l, m);
        rec(m, r);

        merge(a.begin() + l, a.begin() + m, a.begin() + m, a.begin() + r, t.begin(), cmp_y());
        copy(t.begin(), t.begin() + r - l, a.begin() + l);

        int tsz = 0;
        for (int i = l; i < r; ++i) {
            if (abs(a[i].x - midx) < mindist) {
                for (int j = tsz - 1; j >= 0 && a[i].y - t[j].y < mindist; --j)
                    upd_ans(a[i], t[j]);
                t[tsz++] = a[i];
            }
        }
    }

*/
//--------*******------
// struct bigint {
//     vector<int> z;
//     int sign;

//     bigint() :
//         sign(1) {
//     }

//     bigint(long v) {
//         *this = v;
//     }

//     bigint(const string &s) {
//         read(s);
//     }

//     void operator=(const bigint &v) {
//         sign = v.sign;
//         z = v.z;tor=(long long v) {
//         sign = 1;
//         if (v < return 0;0)
//             sign = -1, v = -v;
//         z.clear();
//         for (; v > 0; v = v / base)
//             z.push_back(v % base);
//     }

//     bigint operator+(const bigint &v) const {
//         if (sign == v.sign) {
//             bigint res = v;

//             for (int i = 0, carry = 0; i < (int) max(z.size(), v.z.size()) || carry; ++i) {
//                 if (i == (int) res.z.size())
//                     res.z.push_back(0);
//                 res.z[i] += carry + (i < (int) z.size() ? z[i] : 0);
//                 carry = res.z[i] >= base;
//                 if (carry)
//                     res.z[i] -= base;
//             }
//             return res;
//         }
//         return *this - (-v);
//     }

//     bigint operator-(const bigint &v) const {
//         if (sign == v.sign) {
//             if (abs() >= v.abs()) {
//                 bigint res = *this;
//                 for (int i = 0, carry = 0; i < (int) v.z.size() || carry; ++i) {
//                     res.z[i] -= carry + (i < (int) v.z.size() ? v.z[i] : 0);
//                     carry = res.z[i] < 0;
//                     if (carry)
//                         res.z[i] += base;
//                 }
//                 res.trim();
//                 return res;
//             }
//             return -(v - *this);
//         }
//         return *this + (-v);
//     }

//     void operator*=(int v) {
//         if (v < 0)
//             sign = -sign, v = -v;
//         for (int i = 0, carry = 0; i < (int) z.size() || carry; ++i) {
//             if (i == (int) z.size())
//                 z.push_back(0);
//             long long cur = z[i] * (long long) v + carry;
//             carry = (int) (cur / base);
//             z[i] = (int) (cur % base);
//             //asm("divl %%ecx" : "=a"(carry), "=d"(a[i]) : "A"(cur), "c"(base));
//         }
//         trim();
//     }

//     bigint operator*(int v) const {
//         bigint res = *this;
//         res *= v;
//         return res;
//     }

//     friend pair<bigint, bigint> divmod(const bigint &a1, const bigint &b1) {
//         int norm = base / (b1.z.back() + 1);
//         bigint a = a1.abs() * norm;
//         bigint b = b1.abs() * norm;
//         bigint q, r;
//         q.z.resize(a.z.size());

//         for (int i = a.z.size() - 1; i >= 0; i--) {
//             r *= base;
//             r += a.z[i];
//             int s1 = b.z.size() < r.z.size() ? r.z[b.z.size()] : 0;
//             int s2 = b.z.size() - 1 < r.z.size() ? r.z[b.z.size() - 1] : 0;
//             int d = ((long long) s1 * base + s2) / b.z.back();
//             r -= b * d;
//             while (r < 0)
//                 r += b, --d;
//             q.z[i] = d;
//         }

//         q.sign = a1.sign * b1.sign;
//         r.sign = a1.sign;
//         q.trim();
//         r.trim();
//         return make_pair(q, r / norm);
//     }

//     friend bigint sqrt(const bigint &a1) {
//         bigint a = a1;
//         while (a.z.empty() || a.z.size() % 2 == 1)
//             a.z.push_back(0);

//         int n = a.z.size();

//         int firstDigit = (int) sqrt((double) a.z[n - 1] * base + a.z[n - 2]);
//         int norm = base / (firstDigit + 1);
//         a *= norm;
//         a *= norm;
//         while (a.z.empty() || a.z.size() % 2 == 1)
//             a.z.push_back(0);

//         bigint r = (long long) a.z[n - 1] * base + a.z[n - 2];
//         firstDigit = (int) sqrt((double) a.z[n - 1] * base + a.z[n - 2]);
//         int q = firstDigit;
//         bigint res;

//         for(int j = n / 2 - 1; j >= 0; j--) {
//             for(; ; --q) {
//                 bigint r1 = (r - (res * 2 * base + q) * q) * base * base + (j > 0 ? (long long) a.z[2 * j - 1] * base + a.z[2 * j - 2] : 0);
//                 if (r1 >= 0) {
//                     r = r1;
//                     break;
//                 }
//             }
//             res *= base;
//             res += q;

//             if (j > 0) {
//                 int d1 = res.z.size() + 2 < r.z.size() ? r.z[res.z.size() + 2] : 0;
//                 int d2 = res.z.size() + 1 < r.z.size() ? r.z[res.z.size() + 1] : 0;
//                 int d3 = res.z.size() < r.z.size() ? r.z[res.z.size()] : 0;
//                 q = ((long long) d1 * base * base + (long long) d2 * base + d3) / (firstDigit * 2);
//             }
//         }

//         res.trim();
//         return res / norm;
//     }

//     bigint operator/(const bigint &v) const {
//         return divmod(*this, v).first;
//     }

//     bigint operator%(const bigint &v) const {
//         return divmod(*this, v).second;
//     }

//     void operator/=(int v) {
//         if (v < 0)
//             sign = -sign, v = -v;
//         for (int i = (int) z.size() - 1, rem = 0; i >= 0; --i) {
//             long long cur = z[i] + rem * (long long) base;
//             z[i] = (int) (cur / v);
//             rem = (int) (cur % v);
//         }
//         trim();
//     }

//     bigint operator/(int v) const {
//         bigint res = *this;
//         res /= v;
//         return res;
//     }

//     int operator%(int v) const {
//         if (v < 0)
//             v = -v;
//         int m = 0;
//         for (int i = z.size() - 1; i >= 0; --i)
//             m = (z[i] + m * (long long) base) % v;
//         return m * sign;
//     }

//     void operator+=(const bigint &v) {
//         *this = *this + v;
//     }
//     void operator-=(const bigint &v) {
//         *this = *this - v;
//     }
//     void operator*=(const bigint &v) {
//         *this = *this * v;
//     }
//     void operator/=(const bigint &v) {
//         *this = *this / v;
//     }

//     bool operator<(const bigint &v) const {
//         if (sign != v.sign)
//             return sign < v.sign;
//         if (z.size() != v.z.size())
//             return z.size() * sign < v.z.size() * v.sign;
//         for (int i = z.size() - 1; i >= 0; i--)
//             if (z[i] != v.z[i])
//                 return z[i] * sign < v.z[i] * sign;
//         return false;
//     }

//     bool operator>(const bigint &v) const {
//         return v < *this;
//     }
//     bool operator<=(const bigint &v) const {
//         return !(v < *this);
//     }
//     bool operator>=(const bigint &v) const {
//         return !(*this < v);
//     }
//     bool operator==(const bigint &v) const {
//         return !(*this < v) && !(v < *this);
//     }
//     bool operator!=(const bigint &v) const {
//         return *this < v || v < *this;
//     }

//     void trim() {
//         while (!z.empty() && z.back() == 0)
//             z.pop_back();
//         if (z.empty())
//             sign = 1;
//     }

//     bool isZero() const {
//         return z.empty() || (z.size() == 1 && !z[0]);
//     }

//     bigint operator-() const {
//         bigint res = *this;
//         res.sign = -sign;
//         return res;
//     }

//     bigint abs() const {
//         bigint res = *this;
//         res.sign *= res.sign;
//         return res;
//     }

//     long long longValue() const {
//         long long res = 0;
//         for (int i = z.size() - 1; i >= 0; i--)
//             res = res * base + z[i];
//         return res * sign;
//     }

//     friend bigint gcd(const bigint &a, const bigint &b) {
//         return b.isZero() ? a : gcd(b, a % b);
//     }
//     friend bigint lcm(const bigint &a, const bigint &b) {
//         return a / gcd(a, b) * b;
//     }

//     void read(const string &s) {
//         sign = 1;
//         z.clear();
//         int pos = 0;
//         while (pos < (int) s.size() && (s[pos] == '-' || s[pos] == '+')) {
//             if (s[pos] == '-')
//                 sign = -sign;
//             ++pos;
//         }
//         for (int i = s.size() - 1; i >= pos; i -= base_digits) {
//             int x = 0;
//             for (int j = max(pos, i - base_digits + 1); j <= i; j++)
//                 x = x * 10 + s[j] - '0';
//             z.push_back(x);
//         }
//         trim();
//     }

//     friend istream& operator>>(istream &stream, bigint &v) {
//         string s;
//         stream >> s;
//         v.read(s);
//         return stream;
//     }

//     friend ostream& operator<<(ostream &stream, const bigint &v) {
//         if (v.sign == -1)
//             stream << '-';
//         stream << (v.z.empty() ? 0 : v.z.back());
//         for (int i = (int) v.z.size() - 2; i >= 0; --i)
//             stream << setw(base_digits) << setfill('0') << v.z[i];
//         return stream;
//     }

//     static vector<int> convert_base(const vector<int> &a, int old_digits, int new_digits) {
//         vector<long long> p(max(old_digits, new_digits) + 1);
//         p[0] = 1;
//         for (int i = 1; i < (int) p.size(); i++)
//             p[i] = p[i - 1] * 10;
//         vector<int> res;
//         long long cur = 0;
//         int cur_digits = 0;
//         for (int i = 0; i < (int) a.size(); i++) {
//             cur += a[i] * p[cur_digits];
//             cur_digits += old_digits;
//             while (cur_digits >= new_digits) {
//                 res.push_back(int(cur % p[new_digits]));
//                 cur /= p[new_digits];
//                 cur_digits -= new_digits;
//             }
//         }
//         res.push_back((int) cur);
//         while (!res.empty() && res.back() == 0)
//             res.pop_back();
//         return res;
//     }

//     typedef vector<long long> vll;

//     static vll karatsubaMultiply(const vll &a, const vll &b) {
//         int n = a.size();
//         vll res(n + n);
//         if (n <= 32) {
//             for (int i = 0; i < n; i++)
//                 for (int j = 0; j < n; j++)
//                     res[i + j] += a[i] * b[j];
//             return res;
//         }

//         int k = n >> 1;
//         vll a1(a.begin(), a.begin() + k);
//         vll a2(a.begin() + k, a.end());
//         vll b1(b.begin(), b.begin() + k);
//         vll b2(b.begin() + k, b.end());

//         vll a1b1 = karatsubaMultiply(a1, b1);
//         vll a2b2 = karatsubaMultiply(a2, b2);

//         for (int i = 0; i < k; i++)
//             a2[i] += a1[i];
//         for (int i = 0; i < k; i++)
//             b2[i] += b1[i];

//         vll r = karatsubaMultiply(a2, b2);
//         for (int i = 0; i < (int) a1b1.size(); i++)
//             r[i] -= a1b1[i];
//         for (int i = 0; i < (int) a2b2.size(); i++)
//             r[i] -= a2b2[i];

//         for (int i = 0; i < (int) r.size(); i++)
//             res[i + k] += r[i];
//         for (int i = 0; i < (int) a1b1.size(); i++)
//             res[i] += a1b1[i];
//         for (int i = 0; i < (int) a2b2.size(); i++)
//             res[i + n] += a2b2[i];
//         return res;
//     }

//     bigint operator*(const bigint &v) const {
//         vector<int> a6 = convert_base(this->z, base_digits,6);
//         vector<int> b6 = convert_base(v.z, base_digits, 6);
//         vll a(a6.begin(), a6.end());
//         vll b(b6.begin(), b6.end());
//         while (a.size() < b.size())
//             a.push_back(0);
//         while (b.size() < a.size())
//             b.push_back(0);
//         while (a.size() & (a.size() - 1))
//             a.push_back(0), b.push_back(0);
//         vll c = karatsubaMultiply(a, b);
//         bigint res;
//         res.sign = sign * v.sign;
//         for (int i = 0, carry = 0; i < (int) c.size(); i++) {
//             long long cur = c[i] + carry;
//             res.z.push_back((int) (cur % 1000000));
//             carry = (int) (cur / 1000000);
//         }
//         res.z = convert_base(res.z, 6, base_digits);
//         res.trim();
//         return res;
//     }
// }


#include <bits/stdc++.h>

using namespace std;

#define inf 0x7fffffff
#define ll long long

char a[4][111];

int main(int argc, char const *argv[])
{

	cin.tie(0);
	cin.sync_with_stdio(0);

	#ifdef Cyborg101
		freopen("input.txt", "r", stdin);
		freopen("output.txt", "w", stdout);
	#endif

	int n;
	cin >> n;

	if(n == 1){
		cout << -n << endl;
		return 0;
	}

	int cur = 0;

	auto update = [&](int row, int idx){
		a[row][idx] = a[row][idx + 1] = 'a' + cur;
		cur++; cur %= 26;

		int linked = row + (row ? -1 : 1);
		a[linked][idx] = a[linked][idx + 1] = 'a' + cur;
		cur++; cur %= 26;
	};

	//greedy-choice for horizontal tiles
	for(int i = 0; i < n - 1; i++){

		if(i % 2 == 0){
			update(0, i);
		}
		else{
			update(3, i);
		}

	}

	//greedy-choice for vertical tiles
	for(int i = 0; i < 4; ++i){
		for(int j = 0; j < n; ++j){
			if(!a[i][j]){
				a[i][j] = a[i + 1][j] = 'a' + cur;
				cur++; cur %= 26;
			}
		}
	}

	for(int i = 0; i < 4; ++i){
		cout << string(a[i], a[i] + n) << endl;
	}

	//Evil_grin :)

	return 0;
}


#include <bits/stdc++.h>

using namespace std;

#define inf 0x7fffffff
#define ll long long

int main(int argc, char const *argv[])
{

	cin.tie(0);
	cin.sync_with_stdio(0);

	#ifdef Cyborg101
		freopen("input.txt", "r", stdin);
		freopen("output.txt", "w", stdout);
	#endif

	int n;
	cin >> n;

	if(n == 1){
		cout << -n << endl;
		return 0;
	}

	char a[4][n];
	int cur = 0;

	for(int i = 0; i < n; i += 2){

		if(i == n - 1){
			a[0][i] = a[1][i] = (char) cur + 'a';
			cur++;
			cur %= 26;
			a[2][i] = a[3][i] = (char) cur + 'a';
			break;
		}

		for(int j = 0; j < 4; ++j){
			a[j][i] = a[j][i + 1] = (char) cur + 'a';
			cur++;
			cur %= 26;
		}
	}

	for(int i = 0; i < 4; ++i){
		cout << string(a[i], a[i] + n) << endl;
	}

	return 0;
}


#include <bits/stdc++.h>

using namespace std;

#define inf 0x7fffffff
#define ll long long

char a[4][111];

int main(int argc, char const *argv[])
{

	cin.tie(0);
	cin.sync_with_stdio(0);

	#ifdef Cyborg101
		freopen("input.txt", "r", stdin);
		freopen("output.txt", "w", stdout);
	#endif

	int n;
	cin >> n;

	int cur = 0;

	auto update = [&](int row, int idx){
		a[row][idx] = a[row][idx + 1] = 'a' + cur;
		cur++; cur %= 26;

		a[row + 1][idx] = a[row + 1][idx + 1] = 'a' + cur;
		cur++; cur %= 26;
	};

	auto valid = [&](int x, int y){
		return x >= 0 && y >= 0 && x < 4 && y < n;
	};

	srand(time(0));
	auto color = [&](int i, int j, char c){

		for(int ii = -1; ii <= 1; ++ii){
			for(int jj = -1; jj <= 1; ++jj){
				if(abs(ii) == abs(jj)) continue;

				int di = i + ii;
				int dj = j + jj;

				if(!valid(di, dj)) continue;

				if(a[di][dj] == c) return false;
			}
		}

		return true;

	};

	//greedy-choice for horizontal tiles
	for(int i = 0; i < n - 1; i++){

		if(i % 2 == 0){
			update(0, i);
		}
		else{
			update(2, i);
		}

	}

	//greedy-choice for vertical tiles
	for(int i = 0; i < 4; ++i){
		for(int j = 0; j < n; ++j){
			if(!a[i][j]){

				while(true){
					char c = 'a' + rand() % 26;
					if(color(i, j, c) && color(i + 1, j, c)){
						a[i][j] = a[i + 1][j] = c;
						break;
					}
				}

			}
		}
	}

	for(int i = 0; i < 4; ++i){
		cout << string(a[i], a[i] + n) << endl;
	}

	//Evil_grin :)

	return 0;
}


#include <bits/stdc++.h>

using namespace std;

#define inf 0x7fffffff
#define ll long long

char a[4][111];

int main(int argc, char const *argv[])
{

	cin.tie(0);
	cin.sync_with_stdio(0);

	#ifdef Cyborg101
		freopen("input.txt", "r", stdin);
		freopen("output.txt", "w", stdout);
	#endif

	int n;
	cin >> n;

	// if(n == 1){
	// 	cout << -n << endl;
	// 	return 0;
	// }

	int cur = 0;

	auto update = [&](int row, int idx){
		a[row][idx] = a[row][idx + 1] = 'a' + cur;
		cur++; cur %= 26;

		int linked = row + (row ? -1 : 1);
		a[linked][idx] = a[linked][idx + 1] = 'a' + cur;
		cur++; cur %= 26;
	};

	//greedy-choice for horizontal tiles
	for(int i = 0; i < n - 1; i++){

		if(i % 2 == 0){
			update(0, i);
		}
		else{
			update(3, i);
		}

	}

	//greedy-choice for vertical tiles
	for(int i = 0; i < 4; ++i){
		for(int j = 0; j < n; ++j){
			if(!a[i][j]){
				a[i][j] = a[i + 1][j] = 'a' + cur;
				cur++; cur %= 26;
			}
		}
	}

	for(int i = 0; i < 4; ++i){
		cout << string(a[i], a[i] + n) << endl;
	}

	//Evil_grin :)

	return 0;
}


#include <bits/stdc++.h>

using namespace std;

#define inf 0x7fffffff
#define ll long long

char a[4][111];

int main(int argc, char const *argv[])
{

	cin.tie(0);
	cin.sync_with_stdio(0);

	#ifdef Cyborg101
		freopen("input.txt", "r", stdin);
		freopen("output.txt", "w", stdout);
	#endif

	int n;
	cin >> n;

	int cur = 0;

	auto update = [&](int row, int idx){
		a[row][idx] = a[row][idx + 1] = 'a' + cur;
		cur++; cur %= 26;

		a[row + 1][idx] = a[row + 1][idx + 1] = 'a' + cur;
		cur++; cur %= 26;
	};

	auto valid = [&](int x, int y){
		return x >= 0 && y >= 0 && x < 4 && y < n;
	};

	srand(time(0));
	auto color = [&](int i, int j, char c){

		for(int ii = -1; ii <= 1; ++ii){
			for(int jj = -1; jj <= 1; ++jj){
				if(abs(ii) == abs(jj)) continue;

				int di = i + ii;
				int dj = j + jj;

				if(!valid(di, dj)) continue;

				if(a[di][dj] == c) return false;
			}
		}

		return true;

	};

	//greedy-choice for both tiles
	for(int i = 0; i < n - 1; i++){

		if(i % 2 == 0){
			a[0][i] = a[0][i + 1] = 'a' + cur++;
			cur %= 26;
			a[1][i] = a[1][i + 1] = 'a' + cur++;
			cur %= 26;
			if(i == 0){
				a[2][i] = a[3][i] = 'a' + cur++;
				cur %= 26;
			}
		}
		else{
			a[2][i] = a[2][i + 1] = 'a' + cur++;
			cur %= 26;
			a[3][i] = a[3][i + 1] = 'a' + cur++;
			cur %= 26;
		}

	}

	for(int i = 0; i < 4; ++i){
		if(!a[i][n - 1]){
			a[i][n - 1] = a[i + 1][n - 1] = 'a' + cur++;
			cur %= 26;
		}
	}

	for(int i = 0; i < 4; ++i){
		cout << string(a[i], a[i] + n) << endl;
	}

	//Evil_grin :)

	return 0;
}


#include <bits/stdc++.h>

using namespace std;

#define inf 0x7fffffff
#define ll long long

char a[4][111];

int main(int argc, char const *argv[])
{

	cin.tie(0);
	cin.sync_with_stdio(0);

	#ifdef Cyborg101
		freopen("input.txt", "r", stdin);
		freopen("output.txt", "w", stdout);
	#endif

	int n;
	cin >> n;

	int cur = 0;

	auto update = [&](int row, int idx){
		a[row][idx] = a[row][idx + 1] = 'a' + cur;
		cur++; cur %= 26;

		int linked = row + (row ? -1 : 1);
		a[linked][idx] = a[linked][idx + 1] = 'a' + cur;
		cur++; cur %= 26;
	};

	auto valid = [&](int x, int y){
		return x >= 0 && y >= 0 && x < 4 && y < n;
	};

	srand(time(0));
	auto color = [&](int i, int j, char c){

		for(int ii = -1; ii <= 1; ++ii){
			for(int jj = -1; jj <= 1; ++jj){
				if(abs(ii) == abs(jj)) continue;

				int di = i + ii;
				int dj = j + jj;

				if(!valid(di, dj)) continue;

				if(a[di][dj] == c) return false;
			}
		}

		return true;

	};

	//greedy-choice for horizontal tiles
	for(int i = 0; i < n - 1; i++){

		if(i % 2 == 0){
			update(0, i);
		}
		else{
			update(3, i);
		}

	}

	//greedy-choice for vertical tiles
	for(int i = 0; i < 4; ++i){
		for(int j = 0; j < n; ++j){
			if(!a[i][j]){

				while(true){
					char c = 'a' + rand() % 26;
					if(color(i, j, c) && color(i + 1, j, c)){
						a[i][j] = a[i + 1][j] = c;
						break;
					}
				}

			}
		}
	}

	for(int i = 0; i < 4; ++i){
		cout << string(a[i], a[i] + n) << endl;
	}

	//Evil_grin :)

	return 0;
}


#include <bits/stdc++.h>

using namespace std;

#define inf 0x7fffffff
#define ll long long

int main(int argc, char const *argv[])
{

	cin.tie(0);
	cin.sync_with_stdio(0);

	#ifdef Cyborg101
		freopen("input.txt", "r", stdin);
		freopen("output.txt", "w", stdout);
	#endif

	int n;
	cin >> n;

	if(n == 1){
		cout << -n << endl;
		return 0;
	}

	char a[4][n];
	int cur = 0;

	for(int i = 0; i < n; i += 2){

		if(i == n - 1){
			a[0][i] = a[1][i] = (char) cur + 'a';
			cur++;
			cur %= 26;
			a[2][i] = a[3][i] = (char) cur + 'a';
			break;
		}

		for(int j = 0; j < 4; ++j){
			a[j][i] = a[j][i + 1] = (char) cur + 'a';
			cur++;
			cur %= 26;
		}
	}

	for(int i = 0; i < 4; ++i){
		for(int j = 0; j < n; ++j){
			cout << a[i][j] << " \n"[j == n - 1];
		}
	}

	return 0;
}


#include <bits/stdc++.h>
using namespace std;

int n;

int main(){
    cin>>n;
    if (n==1) {
        cout<<"a\na\nb\nb";
        return 0;
    }
    if (n==2) {
        cout<<"aa\nbb\naa\nbb";
        return 0;
    }
    if (n&1) {
        for (int i=1;i<=n/2;++i)
            if (i&1) cout<<"aa";
            else cout<<"bb";
        cout<<"c"<<'\n';
        for (int i=1;i<=n/2;++i)
            if (i&1) cout<<"bb";
            else cout<<"aa";
        cout<<"c"<<'\n';
        cout<<"d";
        for (int i=1;i<=n/2;++i)
            if (i&1) cout<<"ee";
            else cout<<"ff";
        cout<<'\n';
        cout<<"d";
        for (int i=1;i<=n/2;++i)
            if (i&1) cout<<"ff";
            else cout<<"ee";
        return 0;
    }
    for (int i=1;i<=n/2;++i)
        if (i&1) cout<<"aa";
        else cout<<"bb";
    cout<<'\n';
    for (int i=1;i<=n/2;++i)
        if (i&1) cout<<"bb";
        else cout<<"aa";
    cout<<'\n';
    cout<<"c";
    for (int i=1;i<=n/2-1;++i)
        if (i&1) cout<<"dd";
        else cout<<"ee";
    cout<<"f"<<'\n';
    cout<<"c";
    for (int i=1;i<=n/2-1;++i)
        if (i&1) cout<<"ee";
        else cout<<"dd";
    cout<<"f"<<'\n';
}


#include <bits/stdc++.h>

#define x0 abc
#define y0 ABC
#define x1 abcd
#define y1 ABCD
#define xn abcde
#define yn ABCDE

#define l_b lower_bound
#define u_b upper_bound

#define fi first
#define se second
#define m_p make_pair

#define p_b push_back
#define po_b pop_back

#define P acos(-1)

#define endl '\n'

#define OUT cout << "-------" << endl;

using namespace std;

char c[11][181];

int n, i, j;

int main()
{
    //freopen("input.txt", "r", stdin);
    //freopen("output.txt", "w", stdout);

    ios::sync_with_stdio(0);
    cin.tie(0);

    cin >> n;

    if (n % 2 != 0) {
        for (i = 3; i <= n; i += 2) c[1][i - 1] = c[1][i] = char(i / 2 % 2 + 97);

        for (i = 2; i <= n - 1; i += 2) c[4][i - 1] = c[4][i] = char(i / 2 % 2 + 97);

        c[1][1] = c[2][1] = 'x';

        c[3][n] = c[4][n] = 'y';

        for (i = 3; i <= n; i += 2) c[2][i - 1] = c[2][i] = char(i / 2 % 2 + 100);

        for (i = 2; i <= n - 1; i += 2) c[3][i - 1] = c[3][i] = char(i / 2 % 2 + 102);
    }
    else {
        for (i = 3; i <= n - 1; i += 2) c[1][i - 1] = c[1][i] = char(i / 2 % 2 + 97);

        for (i = 2; i <= n; i += 2) c[4][i - 1] = c[4][i] = char(i / 2 % 2 + 97);

        c[1][1] = c[2][1] = 'x';

        c[1][n] = c[2][n] = 'y';

        for (i = 3; i <= n - 1; i += 2) c[2][i - 1] = c[2][i] = char(i / 2 % 2 + 100);

        for (i = 2; i <= n; i += 2) c[3][i - 1] = c[3][i] = char(i / 2 % 2 + 102);
    }

    for (i = 1; i <= 4; i++) {
        for (j = 1; j <= n; j++) cout << c[i][j];

        cout << endl;
    }

    return 0;
}


#include <cstdio>
#include <iostream>
using namespace std;
int N;
char Mat[4][105];
void Even()
{
    char ch='b';
    Mat[1][0]=Mat[2][0]='a';
    for(int i=0;i<N-1;i++)
    {
        if(i%2==0)
        {
            Mat[0][i]=Mat[0][i+1]=ch++;
        if(ch>'z')
            ch='a';
        Mat[3][i]=Mat[3][i+1]=ch++;
        if(ch>'z')
            ch='a';
        }
        else
        {
            Mat[2][i]=Mat[2][i+1]=ch++;
            if(ch>'z')
                ch='a';
            Mat[1][i]=Mat[1][i+1]=ch++;
            if(ch>'z')
                ch='a';
        }
    }
    Mat[1][N-1]=Mat[2][N-1]=ch;
    for(int i=0;i<4;i++)
    {
        for(int j=0;j<N;j++)
            printf("%c",Mat[i][j]);
        printf("\n");
    }
}
int main()
{
    cin>>N;
    if(N==1)
    {
        cout<<-1;
        return 0;
    }
    if(N==2)
    {
        cout<<"aa\nbb\ncc\ndd";
        return 0;
    }
    if(N%2==0)
     Even();
     else cout<<-1;
    return 0;
}


#include <cstdio>
#include <iostream>
using namespace std;
int N;
char Mat[4][105];
void Even()
{
    char ch='b';
    Mat[1][0]=Mat[2][0]='a';
    for(int i=0;i<N;i++)
    {
        if(i%2==0)
        {
            Mat[0][i]=Mat[0][i+1]=ch++;
        if(ch>'z')
            ch='a';
        Mat[3][i]=Mat[3][i+1]=ch++;
        if(ch>'z')
            ch='a';
        }
        else
        {
            Mat[2][i]=Mat[2][i+1]=ch++;
            if(ch>'z')
                ch='a';
            Mat[1][i]=Mat[1][i+1]=ch++;
            if(ch>'z')
                ch='a';
        }
    }
    Mat[1][N]=Mat[2][N]=ch;
    for(int i=0;i<4;i++)
    {
        for(int j=0;j<N;j++)
            printf("%c",Mat[i][j]);
        printf("\n");
    }
}
int main()
{
    cin>>N;
    if(N==1)
    {
        cout<<-1;
        return 0;
    }
    if(N==2)
    {
        cout<<"aa\nbb\ncc\ndd";
        return 0;
    }
    if(N%2==0)
     Even();
     else cout<<-1;
    return 0;
}


#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
const ll mod=1e9+7;
#define pii pair<int,int>
#define pll pair<ll,ll>
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define qq queue
#define pqq priority_queue
ll power(ll x,ll y,ll p)
{
    ll res=1;
    x=x%p;
    while (y > 0)
    {
        if(y&1)
            res=(res*x)%p;
        y=y>>1;
        x=(x*x)%p;
    }
    return res;
}
char ans[5][105];
int main()
{
	ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
 	ll i,j,n;
 	cin>>n;
 	char c1='a',c2='b';
 	for(i=0;i<n-1;i+=2)
 	{
 		ans[0][i]=c1,ans[0][i+1]=c1;
 		ans[1][i]=c2,ans[1][i+1]=c2;
 		char temp=c1;
 		c1=c2;
 		c2=temp;
 	}
 	c1='d',c2='e';
 	ans[2][0]='c';
 	ans[3][0]='c';
 	for(i=1;i<n-1;i+=2)
 	{
 		ans[2][i]=c1,ans[2][i+1]=c1;
 		ans[3][i]=c2,ans[3][i+1]=c2;
 		char temp=c1;
 		c1=c2;
 		c2=temp;
 	}
 	if(n%2==0)
 	{
 		ans[2][n-1]='f';
 		ans[3][n-1]='f';
 	}
 	else
 	{
 		ans[0][n-1]='f';
 		ans[1][n-1]='f';
 	}
 	for(i=0;i<4;i++)
 	{
 		for(j=0;j<n;j++)
 			cout<<ans[i][j];
 		cout<<endl;
 	}
	return 0;
}


#include <bits/stdc++.h>
using namespace std;

typedef long long int ll;
#define endl "\n"
#define pll pair<ll, ll>
#define pii pair<int, int>
#define pb push_back
#define vi vector<int>
#define vl vector<ll>
#define vpii vector<pair<int, int>>
#define mems(x, y) memset(x, y, sizeof(x))
#define all(x) (x).begin(), (x).end()
#define forn(i, s, e) for (int i = s; i < (e); ++i)
#define FASTIO                        \
    ios_base::sync_with_stdio(false); \
    cin.tie(NULL);
#define FILEIO                          \
    freopen("./input.txt", "r", stdin); \
    freopen("./output.txt", "w", stdout);
#define debug(...) fprintf(stderr, __VA_ARGS__), fflush(stderr)
#define time__(d)                                                               \
    for (                                                                       \
        auto blockTime = make_pair(chrono::high_resolution_clock::now(), true); \
        blockTime.second;                                                       \
        debug("%s : %lld ms\n ", d, chrono::duration_cast<chrono::milliseconds>(chrono::high_resolution_clock::now() - blockTime.first).count()), blockTime.second = false)
const int M = 1e9 + 7;

template <class T>
T ABS(const T &x) { return x > 0 ? x : -x; }
ll gcd(ll n1, ll n2) { return n2 == 0 ? ABS(n1) : gcd(n2, n1 % n2); }
ll lcm(ll n1, ll n2) { return n1 == 0 && n2 == 0 ? 0 : ABS(n1 * n2) / gcd(n1, n2); }

int main()
{
    FASTIO
#ifdef LOCAL
    FILEIO
#endif
    int n;
    cin >> n;
    if (n == 1)
    {
        cout << -1;
        return 0;
    }
    char ans[4][n];
    ans[0][0] = 'x', ans[0][1] = 'x', ans[1][0] = 'y', ans[1][1] = 'y';
    forn(i, 2, n)
    {
        if (i % 2)
        {
            ans[0][i] = 'a';
            ans[1][i] = 'a';
        }
        else
        {
            ans[0][i] = 'b';
            ans[1][i] = 'b';
        }
    }
    forn(i, 0, n)
    {
        if (i % 2)
        {
            ans[2][i] = 'p';
            ans[3][i] = 'p';
        }
        else
        {
            ans[2][i] = 'h';
            ans[3][i] = 'h';
        }
    }
    forn(i, 0, 4)
    {
        forn(j, 0, n)
        {
            cout << ans[i][j];
        }
        cout << endl;
    }
    return 0;
}


#include <bits/stdc++.h>
using namespace std;

typedef long long int ll;
#define endl "\n"
#define pll pair<ll, ll>
#define pii pair<int, int>
#define pb push_back
#define vi vector<int>
#define vl vector<ll>
#define vpii vector<pair<int, int>>
#define mems(x, y) memset(x, y, sizeof(x))
#define all(x) (x).begin(), (x).end()
#define forn(i, s, e) for (int i = s; i < (e); ++i)
#define FASTIO                        \
    ios_base::sync_with_stdio(false); \
    cin.tie(NULL);
#define FILEIO                          \
    freopen("./input.txt", "r", stdin); \
    freopen("./output.txt", "w", stdout);
#define debug(...) fprintf(stderr, __VA_ARGS__), fflush(stderr)
#define time__(d)                                                               \
    for (                                                                       \
        auto blockTime = make_pair(chrono::high_resolution_clock::now(), true); \
        blockTime.second;                                                       \
        debug("%s : %lld ms\n ", d, chrono::duration_cast<chrono::milliseconds>(chrono::high_resolution_clock::now() - blockTime.first).count()), blockTime.second = false)
const int M = 1e9 + 7;

template <class T>
T ABS(const T &x) { return x > 0 ? x : -x; }
ll gcd(ll n1, ll n2) { return n2 == 0 ? ABS(n1) : gcd(n2, n1 % n2); }
ll lcm(ll n1, ll n2) { return n1 == 0 && n2 == 0 ? 0 : ABS(n1 * n2) / gcd(n1, n2); }

int main()
{
    FASTIO
#ifdef LOCAL
    FILEIO
#endif
    int n;
    cin >> n;
    char ans[4][n];
    if (n % 2)
    {
        ans[0][0] = 'p', ans[1][0] = 'p';
        for (int i = 1; i < n - 1; i += 2)
        {
            if (i % 4 == 1)
            {
                ans[0][i] = 'a', ans[0][i + 1] = 'a';
                ans[1][i] = 'b', ans[1][i + 1] = 'b';
            }
            else if (i % 4 == 3)
            {
                ans[1][i] = 'a', ans[1][i + 1] = 'a';
                ans[0][i] = 'b', ans[0][i + 1] = 'b';
            }
        }
        for (int i = 0; i < n - 1; i += 2)
        {
            if (i % 4)
            {
                ans[2][i] = 'c', ans[2][i + 1] = 'c';
                ans[3][i] = 'd', ans[3][i + 1] = 'd';
            }
            else
            {
                ans[2][i] = 'd', ans[2][i + 1] = 'd';
                ans[3][i] = 'c', ans[3][i + 1] = 'c';
            }
        }
        ans[2][n - 1] = 'h', ans[3][n - 1] = 'h';
    }
    else
    {
        ans[2][0] = 'p', ans[3][0] = 'p';
        for (int i = 0; i < n; i += 2)
        {
            if (i % 4)
            {
                ans[0][i] = 'a', ans[0][i + 1] = 'a';
                ans[1][i] = 'b', ans[1][i + 1] = 'b';
            }
            else
            {
                ans[1][i] = 'a', ans[1][i + 1] = 'a';
                ans[0][i] = 'b', ans[0][i + 1] = 'b';
            }
        }
        for (int i = 1; i < n - 1; i += 2)
        {
            if (i % 4 == 1)
            {
                ans[2][i] = 'c', ans[2][i + 1] = 'c';
                ans[3][i] = 'd', ans[3][i + 1] = 'd';
            }
            else if (i % 4 == 3)
            {
                ans[2][i] = 'd', ans[2][i + 1] = 'd';
                ans[3][i] = 'c', ans[3][i + 1] = 'c';
            }
        }
        ans[2][n - 1] = 'h', ans[3][n - 1] = 'h';
    }

    forn(i, 0, 4)
    {
        forn(j, 0, n)
        {
            cout << ans[i][j];
        }
        cout << endl;
    }
    return 0;
}


#include <bits/stdc++.h>
using namespace std;

typedef long long int ll;
#define endl "\n"
#define pll pair<ll, ll>
#define pii pair<int, int>
#define pb push_back
#define vi vector<int>
#define vl vector<ll>
#define vpii vector<pair<int, int>>
#define mems(x, y) memset(x, y, sizeof(x))
#define all(x) (x).begin(), (x).end()
#define forn(i, s, e) for (int i = s; i < (e); ++i)
#define FASTIO                        \
    ios_base::sync_with_stdio(false); \
    cin.tie(NULL);
#define FILEIO                          \
    freopen("./input.txt", "r", stdin); \
    freopen("./output.txt", "w", stdout);
#define debug(...) fprintf(stderr, __VA_ARGS__), fflush(stderr)
#define time__(d)                                                               \
    for (                                                                       \
        auto blockTime = make_pair(chrono::high_resolution_clock::now(), true); \
        blockTime.second;                                                       \
        debug("%s : %lld ms\n ", d, chrono::duration_cast<chrono::milliseconds>(chrono::high_resolution_clock::now() - blockTime.first).count()), blockTime.second = false)
const int M = 1e9 + 7;

template <class T>
T ABS(const T &x) { return x > 0 ? x : -x; }
ll gcd(ll n1, ll n2) { return n2 == 0 ? ABS(n1) : gcd(n2, n1 % n2); }
ll lcm(ll n1, ll n2) { return n1 == 0 && n2 == 0 ? 0 : ABS(n1 * n2) / gcd(n1, n2); }

int main()
{
    FASTIO
#ifdef LOCAL
    FILEIO
#endif
    int n;
    cin >> n;
    if (n == 1)
    {
        cout << -1;
        return 0;
    }
    char ans[4][n];
    if (n % 2)
    {
        ans[0][0] = 'p', ans[1][0] = 'p';
        for (int i = 1; i < n - 1; i += 2)
        {
            if (i % 4 == 1)
            {
                ans[0][i] = 'a', ans[0][i + 1] = 'a';
                ans[1][i] = 'b', ans[1][i + 1] = 'b';
            }
            else if (i % 4 == 3)
            {
                ans[1][i] = 'a', ans[1][i + 1] = 'a';
                ans[0][i] = 'b', ans[0][i + 1] = 'b';
            }
        }
        for (int i = 0; i < n - 1; i += 2)
        {
            if (i % 4)
            {
                ans[2][i] = 'c', ans[2][i + 1] = 'c';
                ans[3][i] = 'd', ans[3][i + 1] = 'd';
            }
            else
            {
                ans[2][i] = 'd', ans[2][i + 1] = 'd';
                ans[3][i] = 'c', ans[3][i + 1] = 'c';
            }
        }
        ans[2][n - 1] = 'h', ans[3][n - 1] = 'h';
    }
    else
    {
        ans[2][0] = 'p', ans[3][0] = 'p';
        for (int i = 0; i < n; i += 2)
        {
            if (i % 4)
            {
                ans[0][i] = 'a', ans[0][i + 1] = 'a';
                ans[1][i] = 'b', ans[1][i + 1] = 'b';
            }
            else
            {
                ans[1][i] = 'a', ans[1][i + 1] = 'a';
                ans[0][i] = 'b', ans[0][i + 1] = 'b';
            }
        }
        for (int i = 1; i < n - 1; i += 2)
        {
            if (i % 4 == 1)
            {
                ans[2][i] = 'c', ans[2][i + 1] = 'c';
                ans[3][i] = 'd', ans[3][i + 1] = 'd';
            }
            else if (i % 4 == 3)
            {
                ans[2][i] = 'd', ans[2][i + 1] = 'd';
                ans[3][i] = 'c', ans[3][i + 1] = 'c';
            }
        }
        ans[2][n - 1] = 'h', ans[3][n - 1] = 'h';
    }

    forn(i, 0, 4)
    {
        forn(j, 0, n)
        {
            cout << ans[i][j];
        }
        cout << endl;
    }
    return 0;
}


#include                        <bits/stdc++.h>
#define   lli                   unsigned long long int
#define   lll                    long long int
#define   PI                    2 * acos(0.0)
#define   UNIQUE(V)             (V).erase(unique(ALL(V), (V).end()) //vector/string etc must need to be sorted
#define   timesave              ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define   ALL(V)                (V).begin(), (V).end()
#define   MEMSET(a, val)        memset(a, val, sizeof(a))
using     namespace             std;

template  <class T> T GCD(T a, T b) { return (b != 0 ? GCD <T> (b, a%b) : a); }
template  <class T> T LCM(T a, T b) { return ((a*b)  / GCD <T> (a, b)); }

//------------------- Let`s Start ------------------------ //

int main()
{
    timesave;

    int n;

    cin >> n;

    string s1 = "", s2 = "", s3 = "", s4, aa = "aa", bb = "bb", xx = "xx", yy = "yy", zz = "zz", kk = "kk", ll = "ll";

    if(n == 1){
        cout << "x" << endl;
        cout << "x" << endl;
        cout << "y" << endl;
        cout << "y" << endl;

        return 0;
    }

    int j = 1;
    for(int i = 1; i <= n;){
        if(j == 1) {s1 += aa; j = 2;}
        else {s1 += bb; j = 1;}
        i += 2;

        if(i == n) break;
    }

    if(n%2){
        s1 += 'c';

        j = 1;
        for(int i = 1; i < n; i += 2){
            if(j == 1) {s2 += bb; j = 2;}
            else {s2 += aa; j = 1;}
        }
        s2 += s1[n-1];

        s3 += 'd';
        s4 += 'd';

        j = 1;
        for(int i = 2; i <= n; i += 2){
            if(j == 1) {s3 += xx; j = 2;}
            else {s3 += yy; j = 1;}
        }

        j = 1;
        for(int i = 2; i <= n; i += 2){
            if(j == 1) {s4 += kk; j = 2;}
            else {s4 += ll; j = 1;}
        }
    }

    else{
        s4 = s1;

        s2 += 'e';
        s3 += 'e';

        j = 1;
        for(int i = 2; i < n; i += 2){
            if(j == 1) { s2 += xx; s3 += kk; j = 2;}
            else {s2 += yy; s3 += ll; j = 1;}
        }

        s2 += 'f';
        s3 += 'f';
    }

    cout << s1 << endl;
    cout << s2 << endl;
    cout << s3 << endl;
    cout << s4 << endl;

    return 0;
}


#include                        <bits/stdc++.h>
#define   lli                   unsigned long long int
#define   ll                    long long int
#define   PI                    2 * acos(0.0)
#define   UNIQUE(V)             (V).erase(unique(ALL(V), (V).end()) //vector/string etc must need to be sorted
#define   timesave              ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define   ALL(V)                (V).begin(), (V).end()
#define   MEMSET(a, val)        memset(a, val, sizeof(a))
using     namespace             std;

template  <class T> T GCD(T a, T b) { return (b != 0 ? GCD <T> (b, a%b) : a); }
template  <class T> T LCM(T a, T b) { return ((a*b)  / GCD <T> (a, b)); }

//------------------- Let`s Start ------------------------ //

int main()
{
    timesave;

    int n;

    cin >> n;

    string s1 = "", s2, s3 = "", s4;

    char ch1 = 'a', ch3 = 'b';

    for(int i = 0; i < n; i++){
        s1 += ch1;
        s3 += ch3;
        if(ch3 == 'z') ch3 = 'b';
        else ch3++;

        if(ch1 == 'z') ch1 = 'a';
        else ch1++;
    }

    cout << s1 << endl;
    cout << s1 << endl;
    cout << s3 << endl;
    cout << s3 << endl;

    return 0;
}


#include                        <bits/stdc++.h>
#define   lli                   unsigned long long int
#define   lll                    long long int
#define   PI                    2 * acos(0.0)
#define   UNIQUE(V)             (V).erase(unique(ALL(V), (V).end()) //vector/string etc must need to be sorted
#define   timesave              ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define   ALL(V)                (V).begin(), (V).end()
#define   MEMSET(a, val)        memset(a, val, sizeof(a))
using     namespace             std;

template  <class T> T GCD(T a, T b) { return (b != 0 ? GCD <T> (b, a%b) : a); }
template  <class T> T LCM(T a, T b) { return ((a*b)  / GCD <T> (a, b)); }

//------------------- Let`s Start ------------------------ //

int main()
{
    timesave;

    int n;

    cin >> n;

    string s1 = "", s2 = "", s3 = "", s4, aa = "aa", bb = "bb", xx = "xx", yy = "yy", zz = "zz", kk = "kk", ll = "ll";

    if(n == 1){
        cout << -1 << endl;
        return 0;
    }

    int j = 1;
    for(int i = 1; i <= n;){
        if(j == 1) {s1 += aa; j = 2;}
        else {s1 += bb; j = 1;}
        i += 2;

        if(i == n) break;
    }

    if(n%2){
        s1 += 'c';

        j = 1;
        for(int i = 1; i < n; i += 2){
            if(j == 1) {s2 += bb; j = 2;}
            else {s2 += aa; j = 1;}
        }
        s2 += s1[n-1];

        s3 += 'd';
        s4 += 'd';

        j = 1;
        for(int i = 2; i <= n; i += 2){
            if(j == 1) {s3 += xx; j = 2;}
            else {s3 += yy; j = 1;}
        }

        j = 1;
        for(int i = 2; i <= n; i += 2){
            if(j == 1) {s4 += kk; j = 2;}
            else {s4 += ll; j = 1;}
        }
    }

    else{
        s4 = s1;

        s2 += 'e';
        s3 += 'e';

        j = 1;
        for(int i = 2; i < n; i += 2){
            if(j == 1) { s2 += xx; s3 += kk; j = 2;}
            else {s2 += yy; s3 += ll; j = 1;}
        }

        s2 += 'f';
        s3 += 'f';
    }

    cout << s1 << endl;
    cout << s2 << endl;
    cout << s3 << endl;
    cout << s4 << endl;

    return 0;
}


#include <iostream>

using namespace std;

void s()
{
          cout<<"aabb";
}
void d()
{
          cout<<"ccdd";
}
int main()
{
          int n;
          cin>>n;
          if(n==1)
          {
                    cout<<"m\nm\nj\nj\n";
                    return 0;
          }
          if(n==3)
          {
                    cout<<"jjn\nkkn\nwqq\nwee\n";
                    return 0;
          }
          if(n%2==1)
          {
                    for(int i=0;i<n/4;i++)
                              cout<<"ffaa";
                    if(n%4==3)
                              cout<<"yyu";
                    if(n%4==1)
                              cout<<"u";
                    cout<<endl;
                    for(int i=0;i<n/4;i++)
                              cout<<"ggqq";
                    if(n%4==3)
                              cout<<"hhu";
                    if(n%4==1)
                              cout<<"u";
                    cout<<endl;
                    if(n%4==3)
                              cout<<"hhu";
                    if(n%4==1)
                              cout<<"u";
                    for(int i=0;i<n/4;i++)
                              cout<<"ffaa";
                    cout<<endl;
                    if(n%4==3)
                              cout<<"yyu";
                    if(n%4==1)
                              cout<<"u";
                    for(int i=0;i<n/4;i++)
                              cout<<"ggqq";
                    return 0;

          }
          if(n==2)
          {
                    cout<<"jj\nhh\ngg\nff";
                    return 0;
          }
          for(int i=0;i<n/4;i++)
                    s();
          if(n%4==2)
          {
                    cout<<"zz";
          }
          cout<<endl;
          cout<<"gii";
          for(int i=0;i<(n)/4-1;i++)
                    d();
          if(n%4==2)
          {
                    cout<<"dd";
          }
          cout<<"u";
          cout<<endl;
          cout<<"gkk";
          for(int i=0;i<(n)/4-1;i++)
                    s();
          if(n%4==2)
          {
                    cout<<"ff";
          }
          cout<<"u";
          cout<<endl;
          for(int i=0;i<n/4;i++)
                    d();
          if(n%4==2)
          {
                    cout<<"qq";
          }
}


#include <iostream>

using namespace std;

void s()
{
          cout<<"aabb";
}
void d()
{
          cout<<"ccdd";
}
int main()
{
          int n;
          cin>>n;
          if(n%2==1)
          {
                    cout<<-1<<endl;
                    return 0;
          }
          if(n==2)
          {
                    cout<<"jj\nhh\ngg\nff";
                    return 0;
          }
          for(int i=0;i<n/4;i++)
                    s();
          if(n%4==2)
          {
                    cout<<"dd";
          }
          cout<<endl;
          cout<<"gii";
          for(int i=0;i<(n)/4-1;i++)
                    d();
          if(n%4==2)
          {
                    cout<<"dd";
          }
          cout<<"u";
          cout<<endl;
          cout<<"gkk";
          for(int i=0;i<(n)/4-1;i++)
                    s();
          if(n%4==2)
          {
                    cout<<"ff";
          }
          cout<<"u";
          cout<<endl;
          for(int i=0;i<n/4;i++)
                    d();
          if(n%4==2)
          {
                    cout<<"qq";
          }
}


#include <iostream>

using namespace std;

void s()
{
          cout<<"aabb";
}
void d()
{
          cout<<"ccdd";
}
int main()
{
          int n;
          cin>>n;
          if(n%2==1)
          {
                    cout<<-1<<endl;
                    return 0;
          }
          for(int i=0;i<n/4;i++)
                    s();
          if(n%4==2)
          {
                    cout<<"dd";
          }
          cout<<endl;
          cout<<"gii";
          for(int i=0;i<(n)/4-1;i++)
                    d();
          if(n%4==2)
          {
                    cout<<"dd";
          }
          cout<<"u";
          cout<<endl;
          cout<<"gkk";
          for(int i=0;i<(n)/4-1;i++)
                    s();
          if(n%4==2)
          {
                    cout<<"ff";
          }
          cout<<"u";
          cout<<endl;
          for(int i=0;i<n/4;i++)
                    d();
          if(n%4==2)
          {
                    cout<<"qq";
          }
}


#include <iostream>

using namespace std;

void s()
{
          cout<<"aabb";
}
void d()
{
          cout<<"ccdd";
}
int main()
{
          int n;
          cin>>n;
          if(n==1)
          {
                    cout<<-1;
                    return 0;
          }
          if(n==3)
          {
                    cout<<"jjn\nkkn\nwqq\nwee\n";
                    return 0;
          }
          if(n%2==1)
          {
                    for(int i=0;i<n/4;i++)
                              cout<<"ffaa";
                    if(n%4==3)
                              cout<<"yyu";
                    if(n%4==1)
                              cout<<"u";
                    cout<<endl;
                    for(int i=0;i<n/4;i++)
                              cout<<"ggqq";
                    if(n%4==3)
                              cout<<"hhu";
                    if(n%4==1)
                              cout<<"u";
                    cout<<endl;
                    if(n%4==3)
                              cout<<"hhu";
                    if(n%4==1)
                              cout<<"u";
                    for(int i=0;i<n/4;i++)
                              cout<<"ffaa";
                    cout<<endl;
                    if(n%4==3)
                              cout<<"yyu";
                    if(n%4==1)
                              cout<<"u";
                    for(int i=0;i<n/4;i++)
                              cout<<"ggqq";
                    return 0;

          }
          if(n==2)
          {
                    cout<<"jj\nhh\ngg\nff";
                    return 0;
          }
          for(int i=0;i<n/4;i++)
                    s();
          if(n%4==2)
          {
                    cout<<"dd";
          }
          cout<<endl;
          cout<<"gii";
          for(int i=0;i<(n)/4-1;i++)
                    d();
          if(n%4==2)
          {
                    cout<<"dd";
          }
          cout<<"u";
          cout<<endl;
          cout<<"gkk";
          for(int i=0;i<(n)/4-1;i++)
                    s();
          if(n%4==2)
          {
                    cout<<"ff";
          }
          cout<<"u";
          cout<<endl;
          for(int i=0;i<n/4;i++)
                    d();
          if(n%4==2)
          {
                    cout<<"qq";
          }
}


#include <iostream>

using namespace std;

void s()
{
          cout<<"aabb";
}
void d()
{
          cout<<"ccdd";
}
int main()
{
          int n;
          cin>>n;
          if(n==1)
          {
                    cout<<"m\nm\nj\nj\n";
                    return 0;
          }
          if(n==3)
          {
                    cout<<"jjn\nkkn\nwqq\nwee\n";
                    return 0;
          }
          if(n%2==1)
          {
                    for(int i=0;i<n/4;i++)
                              cout<<"ffaa";
                    if(n%4==3)
                              cout<<"yyu";
                    if(n%4==1)
                              cout<<"u";
                    cout<<endl;
                    for(int i=0;i<n/4;i++)
                              cout<<"ggqq";
                    if(n%4==3)
                              cout<<"hhu";
                    if(n%4==1)
                              cout<<"u";
                    cout<<endl;
                    if(n%4==3)
                              cout<<"hhu";
                    if(n%4==1)
                              cout<<"u";
                    for(int i=0;i<n/4;i++)
                              cout<<"ffaa";
                    cout<<endl;
                    if(n%4==3)
                              cout<<"yyu";
                    if(n%4==1)
                              cout<<"u";
                    for(int i=0;i<n/4;i++)
                              cout<<"ggqq";
                    return 0;

          }
          if(n==2)
          {
                    cout<<"jj\nhh\ngg\nff";
                    return 0;
          }
          for(int i=0;i<n/4;i++)
                    s();
          if(n%4==2)
          {
                    cout<<"dd";
          }
          cout<<endl;
          cout<<"gii";
          for(int i=0;i<(n)/4-1;i++)
                    d();
          if(n%4==2)
          {
                    cout<<"dd";
          }
          cout<<"u";
          cout<<endl;
          cout<<"gkk";
          for(int i=0;i<(n)/4-1;i++)
                    s();
          if(n%4==2)
          {
                    cout<<"ff";
          }
          cout<<"u";
          cout<<endl;
          for(int i=0;i<n/4;i++)
                    d();
          if(n%4==2)
          {
                    cout<<"qq";
          }
}


#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define F first
#define S second
#define N1 100005
#define N2 200005
#define endl "\n"
#define mod 1000000007
#define vll vector<ll>
#define pll pair<ll,ll>
#define pb push_back
#define vi vector<int>
#define for0(i,n) for(ll i=0;i<n;i++)
#define for1(i,n) for(ll i=1;i<=n;i++)
#define cy cout<<"YES\n"
#define cn cout<<"NO\n"

int main()
{
    ll n;
    cin>>n;
    ll j;
    if(n==1) cout<<-1;
    else if(n&1)
    {
        j=0;
        for0(i,n/2)
        {
           cout<<char('a'+j%26)<<char('a'+j%26);
            j++;
        }
        ll k=j;
        cout<<char('a'+j%26)<<endl;
        j=3;
        for0(i,n/2)
        {
           cout<<char('b'+j%26)<<char('b'+j%26);
            j++;
        }
        cout<<char('a'+k%26)<<endl;
        j=3;
        cout<<'a';
        for0(i,n/2)
        {
            cout<<char('a'+j%26)<<char('a'+j%26);
            j++;
        }
        cout<<endl;
        cout<<'a';
        j=4;
        for0(i,n/2)
        {
            cout<<char('a'+j%26)<<char('a'+j%26);
            j++;
        }
    }
    else
    {
        j=0;
        for0(i,n/2)
        {
            cout<<char('a'+j%26)<<char('a'+j%26);
            j++;
        }
        j=0;
        cout<<endl;
        for0(i,n/2)
        {
            cout<<char('b'+j%26)<<char('b'+j%26);
            j++;
        }
        j=0;
        cout<<endl;
        for0(i,n/2)
        {
            cout<<char('c'+j%26)<<char('c'+j%26);
            j++;
        }
        cout<<endl;
        j=0;
        for0(i,n/2)
        {
            cout<<char('d'+j%26)<<char('d'+j%26);
            j++;
        }
        cout<<endl;

    }

    return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define F first
#define S second
#define N1 100005
#define N2 200005
#define endl "\n"
#define mod 1000000007
#define vll vector<ll>
#define pll pair<ll,ll>
#define pb push_back
#define vi vector<int>
#define for0(i,n) for(ll i=0;i<n;i++)
#define for1(i,n) for(ll i=1;i<=n;i++)
#define cy cout<<"YES\n"
#define cn cout<<"NO\n"

int main()
{
    ll n;
    cin>>n;
    ll j;
    if(n==1) cout<<-1;
    else if(n&1)
    {
        j=0;
        for0(i,n-1)
        {
           cout<<char('a'+j%26)<<char('a'+j%26);
            j++;
        }
        ll k=j;
        cout<<char('a'+j%26)<<endl;
        j=3;
        for0(i,n-1)
        {
           cout<<char('b'+j%26)<<char('b'+j%26);
            j++;
        }
        cout<<char('a'+k%26)<<endl;
        j=3;
        cout<<'a';
        for0(i,n-1)
        {
            cout<<char('a'+j%26)<<char('a'+j%26);
            j++;
        }
        cout<<endl;
        cout<<'a';
        j=4;
        for0(i,n-1)
        {
            cout<<char('a'+j%26)<<char('a'+j%26);
            j++;
        }
    }
    else
    {
        j=0;
        for0(i,n)
        {
            cout<<char('a'+j%26)<<char('a'+j%26);
            j++;
        }
        j=0;
        cout<<endl;
        for0(i,n)
        {
            cout<<char('b'+j%26)<<char('b'+j%26);
            j++;
        }
        j=0;
        cout<<endl;
        for0(i,n)
        {
            cout<<char('c'+j%26)<<char('c'+j%26);
            j++;
        }
        cout<<endl;
        j=0;
        for0(i,n)
        {
            cout<<char('d'+j%26)<<char('d'+j%26);
            j++;
        }
        cout<<endl;

    }

    return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define F first
#define S second
#define N1 100005
#define N2 200005
#define endl "\n"
#define mod 1000000007
#define vll vector<ll>
#define pb push_back
#define vi vecctor<int>
#define for0(i,n) for(ll i=0;i<n;i++)
#define for1(i,n) for(ll i=1;i<=n;i++)
#define cy cout<<"YES\n"
#define cn cout<<"NO\n"

int main()
{
    ll t=1,k,n,x;
    // cin>>t;
    while(t--)
    {
        cin>>n;
		char c='a';
		for1(i,n)
		{
			if(i==1)
			{
				cout<<c;
			}
			else
			{
				if(i+1<=n)
				cout<<c<<c;
				else cout<<c;
				i++;
			}
			c++;
		}
		cout<<endl;
		c='a';
		for1(i,n)
		{
			if(i==1||i==n)
			{
				cout<<c;
			}
			else
			{
				if(i+1<=n)
				cout<<(char)(c+2)<<(char)(c+2);
				else cout<<c;
				i++;
			}
			c++;
		}
		cout<<endl;
		c='a'+6;
		char d;
		for1(i,n)
		{
			if(i+1<=n)
			cout<<c<<c;
			else
			{
				d=c;
				cout<<c;
			}
			i+=1;
			c++;
		}
		cout<<endl;
		c='k';
		for1(i,n)
		{
			if(i+1<=n)
			cout<<c<<c;
			else cout<<d;
			i+=1;
			c++;
		}

    }
    return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define F first
#define S second
#define N1 100005
#define N2 200005
#define endl "\n"
#define mod 1000000007
#define vll vector<ll>
#define pll pair<ll,ll>
#define pb push_back
#define vi vector<int>
#define for0(i,n) for(ll i=0;i<n;i++)
#define for1(i,n) for(ll i=1;i<=n;i++)
#define cy cout<<"YES\n"
#define cn cout<<"NO\n"

int main()
{
    ll n;
    cin>>n;
    if(n%3!=1) cout<<-1;
    else
    {
        int j=0;
        for0(i,n/2)
        {
            cout<<(char)('a'+j%20)<<(char)('a'+j%20);
            j++;
        }
        cout<<endl;
        for1(i,n)
        {
            if(i%3==1) cout<<'z';
            else cout<<'y';
        }
        cout<<endl;
        for1(i,n)
        {
            if(i%3==1) cout<<'z';
            else cout<<'x';
        }
        cout<<endl;
        j=0;
        for1(i,n/2)
        {
           cout<<(char)('a'+j%20)<<(char)('a'+j%20);
            j++;
        }
    }

    return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define F first
#define S second
#define N1 100005
#define N2 200005
#define endl "\n"
#define mod 1000000007
#define vll vector<ll>
#define pb push_back
#define vi vecctor<int>
#define for0(i,n) for(ll i=0;i<n;i++)
#define for1(i,n) for(ll i=1;i<=n;i++)
#define cy cout<<"YES\n"
#define cn cout<<"NO\n"

int main()
{
    ll t=1,k,n,x;
    // cin>>t;
    while(t--)
    {
        cin>>n;
		char c='a';
		for1(i,n)
		{
			if(i==1)
			{
				cout<<c;
			}
			else
			{
				if(i+1<=n)
				cout<<c<<c;
				else cout<<c;
				i++;
			}
			c++;
			if(c>'z') c='a';
		}
		cout<<endl;
		c='a';
		for1(i,n)
		{
			if(i==1||i==n)
			{
				cout<<c;
			}
			else
			{
				if(i+1<=n)
				{
					if(c+2<='z')
					cout<<(char)(c+2)<<(char)(c+2);
					else
					{
						cout<<(char)(c-26+2)<<(char)(c-26+2);
					}
				}
				else cout<<c;
				i++;
			}
			c++;
			if(c>'z') c='a';
		}
		cout<<endl;
		c='a'+6;
		char d;
		for1(i,n)
		{
			if(i+1<=n)
			cout<<c<<c;
			else
			{
				d=c;
				cout<<c;
			}
			i+=1;
			c++;
			if(c>'z') c='a';
		}
		cout<<endl;
		c='k';
		for1(i,n)
		{
			if(i+1<=n)
			cout<<c<<c;
			else cout<<d;
			i+=1;
			c++;
			if(c>'z') c='a';
		}

    }
    return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define F first
#define S second
#define N1 100005
#define N2 200005
#define endl "\n"
#define mod 1000000007
#define vll vector<ll>
#define pb push_back
#define vi vecctor<int>
#define for0(i,n) for(ll i=0;i<n;i++)
#define for1(i,n) for(ll i=1;i<=n;i++)
#define cy cout<<"YES\n"
#define cn cout<<"NO\n"

int main()
{
    ll t=1,k,n,x;
    // cin>>t;
    while(t--)
    {
        cin>>n;
		char c='a';
		for1(i,n)
		{
			if(i==1)
			{
				cout<<c;
			}
			else
			{
				if(i+1<=n)
				cout<<c<<c;
				else cout<<c;
				i++;
			}
			c++;
			if(c>'z') c='a';
		}
		cout<<endl;
		c='a';
		for1(i,n)
		{
			if(i==1||i==n)
			{
				cout<<c;
			}
			else
			{
				if(i+1<=n)
				cout<<(char)(c+2)<<(char)(c+2);
				else cout<<c;
				i++;
			}
			c++;
			if(c>'z') c='a';
		}
		cout<<endl;
		c='a'+6;
		char d;
		for1(i,n)
		{
			if(i+1<=n)
			cout<<c<<c;
			else
			{
				d=c;
				cout<<c;
			}
			i+=1;
			c++;
			if(c>'z') c='a';
		}
		cout<<endl;
		c='k';
		for1(i,n)
		{
			if(i+1<=n)
			cout<<c<<c;
			else cout<<d;
			i+=1;
			c++;
			if(c>'z') c='a';
		}

    }
    return 0;
}


import java.util.Scanner;

public class A_85_Domino {
    public static void main(String[] args) {
        char[] colors = new char[] { 'a', 'b', 'c', 'd' };
        Scanner inScanner = new Scanner(System.in);
        int n = inScanner.nextInt();
        for (int i = 0; i < 4; i++) {
            if (i < 2)
                System.out.print('i');
            for (int j = 0; j < n - (n % 2) - 2 * ((n + 1) % 2) * (1 - (i / 2 % 2)); j++)
                System.out.print(colors[(2 * (i % 2) + (j / 2) % 2)]);
            if ((i >= 2 && n % 2 != 0) || (i < 2 && n % 2 == 0))
                System.out.print('j');
            System.out.println();
        }
    }
}