package chelper; import java.util.Arrays; import java.util.Comparator; import java.util.TreeSet; import io.InputReader; import io.OutputWriter; import misc.ComparableCouple; import misc.SimpleSavingChelperSolution; public class D extends SimpleSavingChelperSolution { public void solve(int testNumber, InputReader in, OutputWriter out) { wrapSolve(testNumber, in, out); } @Override public void solve(int testNumber) { int n = in.nextInt(); int T = in.nextInt() - 1; n = Math.min(n, T); int[] a = in.nextIntArray(n); int initWait = Math.max(T - n, 0); int leftToWait = T - initWait; int[] needMore = new int[n]; int[] stats = new int[n + 10]; for (int i = 0; i < n; i++) { needMore[i] = Math.max(a[i] - (initWait + i + 1), 0); needMore[i] = Math.min(needMore[i], leftToWait + 1); stats[needMore[i]] += 1; } int cur = stats[0]; int best = cur; for (int i = 1; i <= leftToWait; i++) { cur += stats[i]; int removed = needMore[n - i]; if (removed <= i) { cur--; } stats[removed]--; best = Math.max(best, cur); } out.println(best); } }