#include<iostream>
using namespace std;
typedef struct
{
int data[100];
int front;
int rear;
int max;
}Queue;
void InitQueue(Queue &Q)
{
Q.front=0;
Q.rear=0;
for(int i=0;i<Q.max;i++)
{
Q.data[i]=-1;
}
}
bool Find(Queue Q,int e)
{
for(int i=0;i<Q.max;i++)
{
if(Q.data[i]==e)
return true;
}
return false;
}
bool QueueFull(Queue Q)
{
if(Q.front==Q.rear && Q.data[Q.rear]!=-1)
return true;
else
return false;
}
void DeQueue(Queue &Q)
{
Q.data[Q.front]=-1;
Q.front=(Q.front+1)%Q.max;
}
void EnQueue(Queue &Q, int e)
{
Q.data[Q.rear]=e;
Q.rear=(Q.rear+1)%Q.max;
}
int main()
{
int M=0;
int N=0;
cin>>M>>N;
Queue Q;
InitQueue(Q);
Q.max=M;
int n=0;
for(int i=1;i<=N;i++)
{
int e=0;
cin>>e;
if(Find(Q,e)==0)
{
if(QueueFull(Q)==1)
DeQueue(Q);
EnQueue(Q,e);
n++;
}
}
cout<<n;
}