#define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include #include #include using namespace std; #define int long long #define REP(i,n) for(int i=0;(i)<(n);(i)++) #define ll long long int dp[30][1000]; int n, m; int A[40][40]; void makedp() { for (int i = 1;i < 1000;i++) { for (int j = 0;j < m;j++) { int tmp = 0; for (int k = 0;k < m;k++) { tmp = max(tmp, dp[k][i - 1] + A[k][j]); } dp[j][i] = tmp; } } /* REP(i,n+1){ REP(j, m) { cout << dp[j][i] << " "; } cout << endl; } */ } signed main() { cin >> n >> m; REP(i, m) { REP(j, m) cin >> A[i][j];//0-indexed } makedp(); int ans = 0; REP(i, m) ans = max(ans, dp[i][n-1]); cout << ans; return 0; }