#include #include #include #include using namespace std; #define MAX 100000000 char db[100][5][5], sample[5][5]; int n, k; vector res; ifstream in("fingers.in"); #define cin in //ofstream out("fingers.out"); //#define cout out void readFinger(char fingers[5][5]) { for (int i = 0; i < 5; i++) for (int j = 0; j < 5; j++) cin >> fingers[i][j]; } int getDis(char a[5][5], char b[5][5]) { int dis = 0; for (int i = 0; i < 5; i++) for (int j = 0; j < 5; j++) { if (a[i][j] != b[i][j]) dis++; } return dis; } int main() { int i, j, dis; cin >> n >> k; for (i = 0; i < n; i++) readFinger(db[i]); for (i = 0; i < k; i++) { int minDis = MAX; readFinger(sample); res.clear(); res.push_back(MAX); for (j = 0; j < n; j++) { if ((dis = getDis(sample, db[j])) < minDis) { res.clear(); res.push_back(j+1); minDis = dis; } else if (dis == minDis) res.push_back(j+1); } cout << "Data Set " << i + 1 << ":\n"; for (j = 0; j < res.size(); j++) { if (j != 0) cout << " "; cout << res[j]; } cout << endl << endl; } return 0; }