#include <iostream>
using namespace std;
int vis[1002],temp[1002];//vis指这个数字是否已经缓存;temp指目前最新的存储单词;
int main() {
int M,count=0,N,tempPos=0;//M,N题目已经给出,count指已经存储几个数据,tempPos表示temp开到几;
cin>>M>>N;
int op,sum=0;//op为当前输入序号,sum指查过几次;
while(N--){
cin>>op;
if(vis[op]==1){
continue;//已经缓存,次数加1后,直接下一轮;
}
sum++;
if(count>=M){
vis[temp[tempPos-M]]=0;//不断的更新temp库元素;
vis[op]=1;
temp[tempPos++]=op;
}
else{
vis[op]=1;
temp[tempPos++]=op;
count++;
}
}
cout<<sum<<endl;
return 0;
}
// 64 位输出请用 printf("%lld")

京公网安备 11010502036488号