#P1281. 士兵训练

士兵训练

【问题描述】

N个士兵排成一队进行军事训练,每个士兵的等级用1...K范围内的数来表示,长官每隔1小时就随便说出M个等级a1,a2…am(1≤ai≤K,M个等级中允许有重复),如果这M个等级组成的序列是排成一队的N个士兵等级序列的子序列,那么训练继续;否则训练结束。长官想知道,M至少为多少时,训练才有可能结束。

例:士兵等级序列为1 5 3 2 5 1 3 4 4 2 5 1 2 3,长官说出的等级序列为5 4,那么训练继续,如果长官说出的等级序列为4 4 4,那么训练结束。

【输入文件】train.in

输入文件train.in第一行为两个整数N和K(1≤N≤100000,1≤K≤10000),下面N行,每行一个数,按队伍顺序表示每个士兵的等级。

【输出文件】train.out

输出文件train.out包括一行,只包含一个数M,表示当长官至少说出M个等级的时候,训练才有可能结束。

【样例输入】

14 5
1
5
3
2
5
1
3
4
4
2
5
1
2
3

【样例输出】

3