#include <iostream>
#include <vector>
void checkLess(int key, int val, std::vector<int>& minYears)
{
if((minYears[key] == 2020) || (minYears[key] > val))
{
minYears[key] = val;
}
}
int main()
{
int n, k;
std::cin>>n>>k;
std::vector<int> minYears(n * n, 2020);
std::vector<int> diffs;
diffs.push_back(1);
std::cin>>minYears[1];
if(n == 1)
{
std::cout<<minYears[1]<<"\n";
return 0;
}
std::cin>>minYears[2];
int val;
std::cin>>val;
if(val < minYears[2])
{
minYears[2] = val;
}
int last = n;
for(int r = 3; r <= last; ++r)
{
if(r % 2 == 1)
{
diffs.push_back(1);
}
std::vector<int> v(r + 1, 0);
int mid = (r / 2) + (r % 2);
for(int c = 1; c <= mid; ++c)
{
if(c == 1)
{
v[c] = r;
}
else
{
v[c] = v[c - 1] + diffs[c - 1];
++ diffs[c - 1];
}
std::cin>>val;
checkLess(v[c], val, minYears);
}
int a = mid;
int b = mid;
if(r % 2 == 0)
{
++b;
}
for(int c = 1; c <= r / 2; ++c)
{
v[a + c] = v[b - c];
std::cin>>val;
checkLess(v[a + c], val, minYears);
}
}
int res = 2020;
for(int i = 1; i <= k; ++i)
{
if(minYears[i] < res)
{
res = minYears[i];
}
}
std::cout<<res<<"\n";
}