﻿#include <iostream>
#include <fstream>
using namespace std;

ifstream fin("bemenet.txt");
ofstream fout("kimenet.txt");


/*
    Adott n, egy n elemű A halmaz (ismétlődés nélküli egész számsorozat),
    és egy k egész szám. 

    Írjuk ki az A^k elemeit (Descartes-szorzat).
*/

void f(int szint, int k,
       int n, int halmaz[],
       int megoldas[])
{
    if (szint > k) {
        for (int i = 1; i <= k; i++)
            fout << megoldas[i] << " ";
        fout << endl;
    }
    else {
        for (int i = 1; i <= n; i++) {
            megoldas[szint] = halmaz[i];
            f(szint+1, k, n, halmaz, megoldas);
        }
    }
}




int main()
{
    int n;
    int halmaz[1000];
    int k;

    fin >> n;
    for (int i = 1; i <= n; i++)
        fin >> halmaz[i];
    fin >> k;

    int megoldas[100];
    f(1, k, n, halmaz, megoldas);

    return 0;
}
