#1074. shuji的魔法书

shuji的魔法书

题目背景

shuji在充满西方神幻的异世界大陆中发现了一本有神奇能力的魔法书,这本魔法书能够复制别人的魔法并直接使用,于是懒惰的shuji就想直接用敌人的技能来反制给对方,因为shuji有着奥数至尊的被动技能,导致shuji每次所返回的技能都比别人更强,所以shuji只用别人的技能打败对方。但是要想更好的使用魔法书就需要了解这本魔法书的本质使用方式,于是shuji邀请你与他一同探索。

题目描述

这本魔法书的原理很简单,它只是从头到尾,依次将每个魔法用对应的符号含义来替换。对于每个魔法,魔法书会先在每一页中查找这个魔法的符号,如果魔法书中有这个魔法符号,它就会将这个魔法返回给你;如果书中没有,魔法书就会耗费一个魔法石将魔法转化成符号复制进入魔法书中,从而进行储存。

假设魔法书有 MM页,每一页只能存放一个魔法符号。每当shuji将一个新魔法存入书中,如果当前内存中已存入的魔法数不超过 M1M-1,魔法书会耗费一个魔法石将新魔法存入一个未使用的空白页;若魔法书中已存入 MM 个魔法,魔法书会抹去最早存入魔法书的魔法符号,腾出一个空白页来,存放新魔法。

假设在一场战斗中,敌人一共向shuji发出数目为 NN 个魔法。为了打败这些敌人,shuji需要耗费多少的魔法石来进行回击?假设在战斗开始前,魔法书中没有存放任何魔法。

输入格式

22 行。每行中两个数之间用一个空格隔开。

第一行为两个正整数 M,NM,N,代表魔法书的页数和敌人发出的魔法数。

第二行为 NN 个非负整数,按照敌人发出的魔法的顺序,每个数(大小不超过 10001000)代表一个魔法。当且仅当两个魔法对应的非负整数相同时,他们是相同的魔法。

输出格式

一个整数,为一共需要耗费魔法石的数目。

样例 #1

样例输入 #1

3 7
1 2 1 5 4 4 1

样例输出 #1

5

提示

样例解释

整个战斗过程如下:每行表示用一个魔法进行回击,冒号前为每次攻击后的魔法书中魔法符号的存放情况:

  1. 1:将魔法 1 存入书中并耗费一块魔法石。
  2. 1 2:将魔法 2 存入书中并耗费一块魔法石。
  3. 1 2:在魔法书中找到魔法 1。
  4. 1 2 5:将魔法 5 存入书中并耗费一块魔法石。
  5. 2 5 4:将魔法 4 存入书中并耗费一块魔法石同时替代魔法 1。
  6. 2 5 4:在魔法书中找到魔法 4。
  7. 5 4 1:将魔法 1 存入书中并耗费一块魔法石同时替代魔法 2。

共计使用了 55 块魔法石。

数据范围

  • 对于 20%20\% 的数据有 M=1M=1N5N \leq 5
  • 对于 100%100\% 的数据有 1M1001 \leq M \leq 1001N10001 \leq N \leq 1000