import java.io.*;
import java.util.*;

public class proteins_mb {
    static int dist(byte[] a, byte[] b) {
        int sum = 0;
        for (int i = 0; i < a.length; ++i) {
            sum += Math.abs(a[i] - b[i]);
        }
        return sum;
    }

    public static void main(String[] args) throws IOException {
        try (BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
             PrintWriter out = new PrintWriter(System.out)) {
            // Read input
            StringTokenizer head = new StringTokenizer(in.readLine());
            int n = Integer.parseInt(head.nextToken());
            int l = Integer.parseInt(head.nextToken());
            int k = Integer.parseInt(head.nextToken());
            String[] names = new String[n];
            byte[][] embds = new byte[n][l];
            for (int i = 0; i < n; ++i) {
                StringTokenizer line = new StringTokenizer(in.readLine());
                names[i] = line.nextToken();
                for (int j = 0; j < l; ++j) {
                    embds[i][j] = (byte) (Integer.parseInt(line.nextToken()));
                }
            }

            // Choose first
            int[] answer = new int[k];
            int best0 = 0;
            for (int i = 1; i < n; ++i) {
                int curr = dist(embds[0], embds[i]);
                if (curr > best0) {
                    best0 = curr;
                    answer[0] = i;
                }
            }

            // Create and populate min array
            int[] mins = new int[n];
            byte[] last = embds[answer[0]];
            for (int i = 0; i < n; ++i) {
                mins[i] = dist(last, embds[i]);
            }

            // Continue with other values
            for (int o = 1; o < k; ++o) {
                // Find current best
                int best = 0, bestV = mins[0];
                for (int i = 0; i < n; ++i) {
                    if (mins[i] > bestV) {
                        bestV = mins[i];
                        best = i;
                    }
                }
                answer[o] = best;
                last = embds[best];
                // Update min array
                for (int i = 0; i < n; ++i) {
                    mins[i] = Math.min(mins[i], dist(last, embds[i]));
                }
            }

            for (int i = 0; i < k; ++i) {
                out.println(names[answer[i]]);
            }
        }
    }
}
