1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
#include<bits/stdc++.h>
using namespace std;
const int MAXN = 2e3+3, INF = 1e9+9;

int n,k,dp[MAXN][MAXN], wino, ans = INF;

int main(){
	scanf("%d%d", &n, &k);
	for(int i = 1; i <= n; i++){
		for(int j = 1; j <= i; j++){
			scanf("%d", &wino);
			if(i < 3)	dp[i][j] = i;
			else if(j == 1)	dp[i][j] = dp[i-1][j] +1;
			else if(j == i)	dp[i][j] = dp[i-1][j-1] +1;
			else					dp[i][j] = dp[i-1][j-1] + dp[i-1][j] - dp[i-2][j-1] +1;
			if(dp[i][j] <= k)	ans = min(ans, wino);
		}
	}

	printf("%d\n", ans);
}