#include<bits/stdc++.h>
using namespace std;
inline int read()
{
char ch=getchar();
int s=0,w=1;
while(ch<'0'||ch>'9')
{
if(ch=='-'){w=-1;}
ch=getchar();
}
while(ch>='0'&&ch<='9')
{
s=(s<<1)+(s<<3)+ch-48;
ch=getchar();
}
return s*w;
}
inline void print(int x)
{
if(x<0){putchar('-');x=-x;}
if(x>9){print(x/10);}
putchar(x%10+'0');
}
string f[1001][1001];
char mp[2002][2002];
signed main()
{
int n=read(),m=read();
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++){cin>>mp[i][j];}
}
f[1][1]=mp[1][1];
for(int i=2;i<=n;i++){f[i][1]=f[i-1][1]+mp[i][1];}
for(int i=2;i<=m;i++){f[1][i]=f[1][i-1]+mp[1][i-1];}
for(int i=2;i<=n;i++)
{
for(int j=2;j<=m;j++)
{
f[i][j]=min(f[i-1][j],f[i][j-1])+mp[i][j];
}
}
cout<<f[n][m];
return 0;
}
p8339