| 12345678910111213141516171819202122232425262728293031323334353637383940414243 | 
							- import java.util.Scanner;
 
- public class Main {
 
-     public static void main(String[] args) {
 
-         Scanner scanner = new Scanner(System.in);
 
-         int n = scanner.nextInt(), m = scanner.nextInt();
 
-         int[] shoot = new int[n];
 
-         for (int i = 0; i < n; i++) {
 
-             shoot[i] = scanner.nextInt();
 
-         }
 
-         int[] map = new int[m+1];
 
-         int min = -1, cnt = 0;
 
-         int l = 0, r = 0;
 
-         for (; r < n; r++) {
 
-             if (cnt == m) {
 
-                 for (; l <= r && cnt == m; l++) {
 
-                     if (min == -1 || r-l < min) {
 
-                         min = r - l;
 
-                     }
 
-                     int c = shoot[l];
 
-                     if (c != 0) {
 
-                         map[c]--;
 
-                         if (map[c] == 0) {
 
-                             cnt--;
 
-                         }
 
-                     }
 
-                 }
 
-             }
 
-             int c = shoot[r];
 
-             if (c != 0) {
 
-                 if (map[c] == 0) {
 
-                     cnt++;
 
-                 }
 
-                 map[c]++;
 
-             }
 
-         }
 
-         if (cnt == m && (min == -1 || r-l < min)) {
 
-             min = r - l;
 
-         }
 
-         System.out.println(min);
 
-         scanner.close();
 
-     }
 
- }
 
 
  |