import java.util.Scanner;
public class Main {
public static final int MAX_TASK_NUM = 100;
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
while(scan.hasNext())
{
int ***Blocks = scan.nextInt();
int[] taskPages = new int [MAX_TASK_NUM];
int i = 0;
int page = scan.nextInt();
while(page != -1) // 输入结束标志
{
taskPages[i++] = page;
page = scan.nextInt();
}
System.out.println(LRU.calMissingPages(***Blocks, i, taskPages));
}
scan.close();
}
}
class LRU {
public static int calMissingPages(int ***Blocks, int taskNum, int taskPages[])
{
int[] *** = new int [***Blocks]; // 缓存
***[0] = taskPages[0]; // 预处理,先将第一个作业页面放入缓存
int ***Pages = 1; // 已缓存的页面数
int missingNum = 1; // 缺页次数
boolean missingFlag; // 缺页标志
for(int i = 1; i < taskNum; i++)
{
missingFlag = true;
for(int j = 0; j < ***Pages; j++)
{
if(***[j] == taskPages[i]) // 命中
{
missingFlag = false;
int t = ***[j];
for(int k = j + 1; k < ***Pages; k++)
***[k - 1] = ***[k];
***[***Pages - 1] = t;
break;
}
}
if(missingFlag) // 未命中
{
missingNum++;
if(***Pages == ***Blocks) // 缓存已满
{
for(int k = 1; k < ***Pages; k++)
***[k - 1] = ***[k];
***[***Pages - 1] = taskPages[i];
}
else // 缓存未满
{
***[***Pages] = taskPages[i];
***Pages++;
}
}
}
return missingNum;
}
}