#define MAX 1000050 #include #include using namespace std; int ja[MAX]; vector stanky[2000050]; int main(){ int n, k,su,min, start, end, poc, c, pocetnul, zmrz; while(cin >> n >> k){ for(int i=0; i < MAX; i++){ ja[i] = 0; } pocetnul = k; for(int j=0; j> poc; //cout << "poc " << poc << "\n"; for(int i = 0; i < poc; i++){ cin >> zmrz; /// cout << "pushing " << zmrz << " to " << i << endl; stanky[j].push_back(zmrz); stanky[n+j].push_back(zmrz); } } /* for(int i = 0; i < 2*n; i++){ //cout << "i:"<< i << " obsah "; //cout << "(size: " << stanky[i].size() << ") "; //for(int j = 0; j < stanky[i].size(); j++){ // cout << stanky[i][j] << " "; //} //cout << "\n"; } */ start = 0; end = 0; min = 99999999; su = 0; // while(true){ while(end < 10) { if (pocetnul > 0){ if (end == 2*n) break; for(int i=0; i < stanky[end].size(); i++){ c = stanky[end][i]; if(ja[c] == 0) pocetnul--; ja[c]++; su++; } end++; } else { for(int i=0; i < stanky[start].size(); i++){ c = stanky[start][i]; ja[c]--; su--; if(ja[c] ==0){ pocetnul++; } } start++; } if (pocetnul ==0){ if (min > su) { min = su; } } } if (min == 99999999) cout << "-1\n"; else cout << min << "\n"; } }