#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
using namespace std;
template<class S, class T> inline S min_L(S a,T b){
return a<=b?a:b;
}
template<class S, class T> inline S chmin(S &a, T b){
if(a>b){
a=b;
}
return a;
}
#define main dummy_main
int main(){
return 0;
}
#undef main
int X;
int Y;
int dp[200][200];
class Solution{
public:
int minFallingPathSum(vector<vector<int>>& A){
int i, j;
int mn1;
int mn1p;
int mn2;
X = A.size();
Y = A[0].size();
for(j=(0);j<(Y);j++){
dp[0][j] = A[0][j];
}
for(i=(1);i<(X);i++){
mn1 = mn2 = 1073709056;
for(j=(0);j<(Y);j++){
if(mn1 > dp[i-1][j]){
mn1 = dp[i-1][j];
mn1p = j;
}
}
for(j=(0);j<(Y);j++){
if(j != mn1p){
chmin(mn2, dp[i-1][j]);
}
}
for(j=(0);j<(Y);j++){
if(j!=mn1p){
dp[i][j] =mn1+ A[i][j];
}
else{
dp[i][j] =mn2+ A[i][j];
}
}
}
{
int KrdatlYV;
int ao_dF3pO;
if(Y==0){
ao_dF3pO = 0;
}
else{
ao_dF3pO = dp[X-1][0];
for(KrdatlYV=(1);KrdatlYV<(Y);KrdatlYV++){
ao_dF3pO = min_L(ao_dF3pO, dp[X-1][KrdatlYV]);
}
}
return ao_dF3pO;
}
}
}
;
// cLay varsion 20191214-1
// --- original code ---
// #define main dummy_main
// {}
// #undef main
//
// int X, Y;
// int dp[200][200];
//
//
// class Solution {
// public:
// int minFallingPathSum(vector<vector<int>>& A) {
// int mn1, mn1p, mn2;
// X = A.size();
// Y = A[0].size();
//
// rep(j,Y) dp[0][j] = A[0][j];
// rep(i,1,X){
// mn1 = mn2 = int_inf;
// rep(j,Y) if(mn1 > dp[i-1][j]) mn1 = dp[i-1][j], mn1p = j;
// rep(j,Y) if(j != mn1p) mn2 <?= dp[i-1][j];
// rep(j,Y) dp[i][j] = if[j!=mn1p, mn1, mn2] + A[i][j];
// }
//
// return min(dp[X-1](Y));
// }
// };
I3ByYWdtYSBHQ0Mgb3B0aW1pemUgKCJPZmFzdCIpCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnRlbXBsYXRlPGNsYXNzIFMsIGNsYXNzIFQ+IGlubGluZSBTIG1pbl9MKFMgYSxUIGIpewogIHJldHVybiBhPD1iP2E6YjsKfQp0ZW1wbGF0ZTxjbGFzcyBTLCBjbGFzcyBUPiBpbmxpbmUgUyBjaG1pbihTICZhLCBUIGIpewogIGlmKGE+Yil7CiAgICBhPWI7CiAgfQogIHJldHVybiBhOwp9CiNkZWZpbmUgbWFpbiBkdW1teV9tYWluCmludCBtYWluKCl7CiAgcmV0dXJuIDA7Cn0KI3VuZGVmIG1haW4KaW50IFg7CmludCBZOwppbnQgZHBbMjAwXVsyMDBdOwpjbGFzcyBTb2x1dGlvbnsKICBwdWJsaWM6CiAgaW50IG1pbkZhbGxpbmdQYXRoU3VtKHZlY3Rvcjx2ZWN0b3I8aW50Pj4mIEEpewogICAgaW50IGksIGo7CiAgICBpbnQgbW4xOwogICAgaW50IG1uMXA7CiAgICBpbnQgbW4yOwogICAgWCA9IEEuc2l6ZSgpOwogICAgWSA9IEFbMF0uc2l6ZSgpOwogICAgZm9yKGo9KDApO2o8KFkpO2orKyl7CiAgICAgIGRwWzBdW2pdID0gQVswXVtqXTsKICAgIH0KICAgIGZvcihpPSgxKTtpPChYKTtpKyspewogICAgICBtbjEgPSBtbjIgPSAxMDczNzA5MDU2OwogICAgICBmb3Ioaj0oMCk7ajwoWSk7aisrKXsKICAgICAgICBpZihtbjEgPiBkcFtpLTFdW2pdKXsKICAgICAgICAgIG1uMSA9IGRwW2ktMV1bal07CiAgICAgICAgICBtbjFwID0gajsKICAgICAgICB9CiAgICAgIH0KICAgICAgZm9yKGo9KDApO2o8KFkpO2orKyl7CiAgICAgICAgaWYoaiAhPSBtbjFwKXsKICAgICAgICAgIGNobWluKG1uMiwgZHBbaS0xXVtqXSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZvcihqPSgwKTtqPChZKTtqKyspewogICAgICAgIGlmKGohPW1uMXApewogICAgICAgICAgZHBbaV1bal0gPW1uMSsgQVtpXVtqXTsKICAgICAgICB9CiAgICAgICAgZWxzZXsKICAgICAgICAgIGRwW2ldW2pdID1tbjIrIEFbaV1bal07CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICB7CiAgICAgIGludCBLcmRhdGxZVjsKICAgICAgaW50IGFvX2RGM3BPOwogICAgICBpZihZPT0wKXsKICAgICAgICBhb19kRjNwTyA9IDA7CiAgICAgIH0KICAgICAgZWxzZXsKICAgICAgICBhb19kRjNwTyA9IGRwW1gtMV1bMF07CiAgICAgICAgZm9yKEtyZGF0bFlWPSgxKTtLcmRhdGxZVjwoWSk7S3JkYXRsWVYrKyl7CiAgICAgICAgICBhb19kRjNwTyA9IG1pbl9MKGFvX2RGM3BPLCBkcFtYLTFdW0tyZGF0bFlWXSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhb19kRjNwTzsKICAgIH0KICB9Cn0KOwovLyBjTGF5IHZhcnNpb24gMjAxOTEyMTQtMQoKLy8gLS0tIG9yaWdpbmFsIGNvZGUgLS0tCi8vICNkZWZpbmUgbWFpbiBkdW1teV9tYWluCi8vIHt9Ci8vICN1bmRlZiBtYWluCi8vIAovLyBpbnQgWCwgWTsKLy8gaW50IGRwWzIwMF1bMjAwXTsKLy8gCi8vIAovLyBjbGFzcyBTb2x1dGlvbiB7Ci8vIHB1YmxpYzoKLy8gICBpbnQgbWluRmFsbGluZ1BhdGhTdW0odmVjdG9yPHZlY3RvcjxpbnQ+PiYgQSkgewovLyAgIGludCBtbjEsIG1uMXAsIG1uMjsKLy8gICAgIFggPSBBLnNpemUoKTsKLy8gICAgIFkgPSBBWzBdLnNpemUoKTsKLy8gCi8vICAgICByZXAoaixZKSBkcFswXVtqXSA9IEFbMF1bal07Ci8vICAgICByZXAoaSwxLFgpewovLyAgICAgICBtbjEgPSBtbjIgPSBpbnRfaW5mOwovLyAgICAgICByZXAoaixZKSBpZihtbjEgPiBkcFtpLTFdW2pdKSBtbjEgPSBkcFtpLTFdW2pdLCBtbjFwID0gajsKLy8gICAgICAgcmVwKGosWSkgaWYoaiAhPSBtbjFwKSBtbjIgPD89IGRwW2ktMV1bal07Ci8vICAgICAgIHJlcChqLFkpIGRwW2ldW2pdID0gaWZbaiE9bW4xcCwgbW4xLCBtbjJdICsgQVtpXVtqXTsKLy8gICAgIH0KLy8gCi8vICAgICByZXR1cm4gbWluKGRwW1gtMV0oWSkpOwovLyAgIH0KLy8gfTsK