//|Art|
#pragma GCC optimize("02,unroll-loops")
#pragma GCC target("avx2,fma")
#include <iostream>
#include <chrono>
#include <algorithm>
//#include <bits/stdc++.h>
#define el cout << '\n'
#define fi first
#define se second
#define pb push_back
#define ll long long
#define st string
#define N 505
#define sz(x) (x).size()
#define all(v) (v).begin(), (v).end()
#define FOR(a,b,c) for(int a=b;a<=c;++a)
#define FORE(a,b,c) for(int a=b;a>=c;--a)
#define FED(a,b,c) for(int a=b;a<c;++a)
#define __Art__ signed main()
#define NAME "Art"
using namespace std;
string a[N];
st p;
int n, m, k, x;
void cal (st s){
if (sz(s) == m) {
cout << x, el;
--x;
if (x == 0){
int i = 0;
for (char &x : p) {
if (x == '#') cout << s[i], ++i;
else cout << x;
}
return;
}
else if (x < 0) exit(0);
}
else FED (i, 0, k) cal(s + a[sz(s) + 1][i]);
}
void sol(){
cin >> n >> m >> k >> x;
cin >> p;
FOR (i, 1, m) cin >> a[i], sort(all(a[i]));
cal("");
}
__Art__{
if (fopen(NAME".INP", "r")) {
freopen(NAME".INP", "r", stdin);
freopen(NAME".OUT", "w", stdout);
}
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
sol();
return (0 ^ 0);
}
Ci8vfEFydHwKI3ByYWdtYSBHQ0Mgb3B0aW1pemUoIjAyLHVucm9sbC1sb29wcyIpCiNwcmFnbWEgR0NDIHRhcmdldCgiYXZ4MixmbWEiKQoKI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y2hyb25vPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKLy8jaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KCiNkZWZpbmUgZWwgY291dCA8PCAnXG4nCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBzdCBzdHJpbmcKI2RlZmluZSBOIDUwNQoKI2RlZmluZSBzeih4KSAoeCkuc2l6ZSgpCiNkZWZpbmUgYWxsKHYpICh2KS5iZWdpbigpLCAodikuZW5kKCkKI2RlZmluZSBGT1IoYSxiLGMpIGZvcihpbnQgYT1iO2E8PWM7KythKQojZGVmaW5lIEZPUkUoYSxiLGMpIGZvcihpbnQgYT1iO2E+PWM7LS1hKQojZGVmaW5lIEZFRChhLGIsYykgZm9yKGludCBhPWI7YTxjOysrYSkKCiNkZWZpbmUgX19BcnRfXyBzaWduZWQgbWFpbigpCiNkZWZpbmUgIE5BTUUgICJBcnQiCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RyaW5nIGFbTl07CnN0IHA7CmludCBuLCBtLCBrLCB4OwoKdm9pZCBjYWwgKHN0IHMpewogICAgaWYgKHN6KHMpID09IG0pIHsKICAgICAgICBjb3V0IDw8IHgsIGVsOwogICAgICAgIC0teDsKICAgICAgICBpZiAoeCA9PSAwKXsKICAgICAgICAgICAgaW50IGkgPSAwOwogICAgICAgICAgICBmb3IgKGNoYXIgJnggOiBwKSB7CiAgICAgICAgICAgICAgICBpZiAoeCA9PSAnIycpIGNvdXQgPDwgc1tpXSwgKytpOwogICAgICAgICAgICAgICAgZWxzZSBjb3V0IDw8IHg7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmICh4IDwgMCkgZXhpdCgwKTsKICAgIH0KICAgIGVsc2UgRkVEIChpLCAwLCBrKSBjYWwocyArIGFbc3oocykgKyAxXVtpXSk7Cn0KIAp2b2lkIHNvbCgpeyAgICAKICAgIGNpbiA+PiBuID4+IG0gPj4gayA+PiB4OwogICAgY2luID4+IHA7CiAgICBGT1IgKGksIDEsIG0pIGNpbiA+PiBhW2ldLCBzb3J0KGFsbChhW2ldKSk7CiAgICBjYWwoIiIpOwp9CgpfX0FydF9fewoKICAgIGlmIChmb3BlbihOQU1FIi5JTlAiLCAiciIpKSB7CiAgICAgICAgZnJlb3BlbihOQU1FIi5JTlAiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKE5BTUUiLk9VVCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KCiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgCiAgICBjaW4udGllKG51bGxwdHIpOyAKICAgIGNvdXQudGllKG51bGxwdHIpOwoKICAgIHNvbCgpOwoKICAgIHJldHVybiAoMCBeIDApOwp9Cg==