#P3242. 射箭

射箭

题目描述

FJ喜欢给射箭选手打分,他的打分规则如下:选手共射出n支箭,每单位时间射出1支箭。环数的可能种类为1到m(共m种),若选手能在某段连续的箭中包含所有1到m的环数,这段连续箭对应的时间段长度(即箭的数量)就是候选得分。请你找出最短的候选得分;若选手的n支箭中始终未包含所有1到m的环数,则输出-1。

输入格式

  1. 第一行包含两个整数n和m,分别表示箭的总数和环数的种类数(1 ≤ n ≤ 1000000,1 ≤ m ≤ 2000)。
  2. 第二行包含n个整数,依次表示每支箭的环数(所有环数均在1到m之间)。

输出格式

输出一个整数。若存在包含所有1到m环数的连续箭段,输出最短的该段长度;若无法覆盖所有环数,则输出-1。

样例输入

12 5
2 5 3 1 3 2 4 1 1 5 4 3

样例输出

6

样例说明

样例输入中,n=12(共12支箭),m=5(需包含1、2、3、4、5所有环数),12支箭的环数依次为2、5、3、1、3、2、4、1、1、5、4、3。
在所有包含1-5全部环数的连续箭段中,最短的是长度为6的段(例如从第2支箭“5”到第7支箭“4”,这段箭的环数为5、3、1、3、2、4,覆盖了1-5所有环数),因此输出6。