#include <cstdio>
#include <cstring>

#include <iostream>
#include <vector>
#include <queue>
#include <algorithm>
#include <fstream>
using namespace std;

int N, M, K;
char A[15][15], s[1500], L[15];

void back(int k) {
    if(k > N)
        cout << "\n";
    else {
        for(int i = 1; i <= L[s[k] - '0']; ++i) {
            cout << A[s[k] - '0'][i];
            back(k + 1);
        }
    }
}

int main() {
    //ifstream cin("data.in");

    for(int i = 0; i < 10; ++i) {
        A[i][0] = ' ';
        cin >> (A[i] + 1);

        int len = strlen(A[i]) - 1;
        L[i] = len;

        sort(A[i] + 1, A[i] + len + 1);
    }

    s[0] = ' ';
    cin >> (s + 1);

    N = strlen(s) - 1;

    cout << N << "\n";

    back(1);

    return 0;
}