#include #include #include #define MAX_N 10000 #define MAX_NAME 11 #define MAX_L 100 #define MAX_K 256 int n, l, k; char names[MAX_N][MAX_NAME]; char embds[MAX_N][MAX_L]; int answer[MAX_K]; int dist(int a, int b) { int sum = 0, i; char *ea = embds[a], *eb = embds[b]; for (i = 0; i < l; ++i) { sum += abs(*ea++ - *eb++); } return sum; } int main() { int i, j, t, d; int max_d; scanf("%d%d%d", &n, &l, &k); for (i = 0; i < n; ++i) { scanf("%s", names[i]); for (j = 0; j < l; ++j) { scanf("%d", &d); embds[i][j] = (char) (d); } } max_d = 0; for (i = 1; i < n; ++i) { int dd = dist(0, i); if (max_d < dd) { max_d = dd; answer[0] = i; } } for (i = 1; i < k; ++i) { max_d = 0; for (j = 0; j < n; ++j) { int min_d = 1000000000; for (t = 0; t < i; ++t) { int dd = dist(answer[t], j); if (dd < min_d) { min_d = dd; } } if (min_d > max_d) { max_d = min_d; answer[i] = j; } } } for (i = 0; i < k; ++i) { printf("%s\n", names[answer[i]]); } return 0; }