#include #include #include #include #include #include using namespace std; int main() { ifstream fin("input.txt"); ofstream fout("output.txt"); int N = 0, L = 0, target = 0, n = 0, check = 0; string x; vector in1, in2, tOut; assert(fin); fin >> N; fin >> L; target = L + 1; for (int j = 0; j < N; ++j) { fin >> x; in1.push_back(x); } for (int j = 0; j < N; ++j) { fin >> x; in2.push_back(x); } fin.close(); sort(in2.begin(), in2.end()); for (int j = 0; j < N; ++j) { for (int k = 0; k < N; ++k) tOut.push_back(in1[k]); for (int k = 0; k < L; ++k) { if (in2[0][k] != tOut[j][k]) { n++; for (int m = 0; m < N; ++m) { if(tOut[m][k] == '1') tOut[m][k] = '0'; else tOut[m][k] = '1'; } } } sort(tOut.begin(), tOut.end()); check = 0; for (int k = 0; k < N; ++k) { if (in2[k] != tOut[k]) check++; } if (check < 1) if(target<=n) target = target; else target = n; } if (target <= L) fout << target << endl; else fout << "NOT POSSIBLE" << endl; fout.close(); return 0; }