/*
Written by: Yash Kumar (yashkumar18)
Dhirubhai Ambani Institute Of Information And Communication Technology, Gandhinagar (DA-IICT GANDHINAGAR)
1st Year ICT BTECH student
*/
#include<stdio.h>
#include<iostream>
#include<iomanip>
#include<algorithm>
#include<math.h>
#include<cstdio>
#include<ctype.h>
#include<cstring>
#include<string.h>
#include<inttypes.h>
#include<vector>
#include<set>
#include<map>
#include<queue>
#include<stack>
#include<functional>
#include<cmath>
#include<cstdlib>
#include<cassert>
#define lli long long int
#define llu unsigned long long int
#define sllu(a) scanf("%llu",&a)
#define sllu2(a,b) scanf("%llu %llu",&a,&b)
#define sllu3(a,b,c) scanf("%llu %llu %llu",&a,&b,&c)
#define sllu4(a,b,c,d) scanf("%llu %llu %llu %llu",&a,&b,&c,&d)
#define sllu5(a,b,c,d,e) scanf("%llu %llu %llu %llu %llu",&a,&b,&c,&d,&e)
#define si(a) scanf("%d",&a)
#define si2(a,b) scanf("%d %d",&a,&b)
#define si3(a,b,c) scanf("%d %d %d",&a,&b,&c)
#define si4(a,b,c,d) scanf("%d %d %d %d",&a,&b,&c,&d)
#define si5(a,b,c,d,e) scanf("%d %d %d %d %d",&a,&b,&c,&d,&e)
#define slli(a) scanf("%lld",&a)
#define slli2(a,b) scanf("%lld %lld",&a,&b)
#define slli3(a,b,c) scanf("%lld %lld %lld",&a,&b,&c)
#define slli4(a,b,c,d) scanf("%lld %lld %lld %lld",&a,&b,&c,&d)
#define slli5(a,b,c,d,e) scanf("%lld %lld %lld %lld %lld",&a,&b,&c,&d,&e)
#define ss(a) scanf("%s",a)
#define sc(a) scanf("%c",&a)
#define sf(a) scanf("%f",&a)
#define sf2(a,b) scanf("%f %f",&a,&b)
#define sf3(a,b,c) scanf("%f %f %f",&a,&b,&c)
#define sf4(a,b,c,d) scanf("%f %f %f %f",&a,&b,&c,&d)
#define sf5(a,b,c,d,e) scanf("%f %f %f %f %f",&a,&b,&c,&d,&e)
#define sd(a) scanf("%lf",&a)
#define sd2(a,b) scanf("%lf %lf",&a,&b)
#define sd3(a,b,c) scanf("%lf %lf %lf",&a,&b,&c)
#define sd4(a,b,c,d) scanf("%lf %lf %lf %lf",&a,&b,&c,&d)
#define sd5(a,b,c,d,e) scanf("%lf %lf %lf %lf %lf",&a,&b,&c,&d,&e)
#define slluarray(a,n) for(lli i=0;i<n;i++)sllu(a[i])
#define siarray(a,n) for(lli i=0;i<n;i++)si(a[i])
#define slliarray(a,n) for(lli i=0;i<n;i++)slli(a[i])
#define sfarray(a,n) for(lli i=0;i<n;i++)sf(a[i])
#define sdarray(a,n) for(lli i=0;i<n;i++)sd(a[i])
#define plli(a) printf("%lld",a)
#define pllin(a) printf("%lld\n",a)
#define pi(a) printf("%d",a)
#define pin(a) printf("%d\n",a)
#define pllu(a) printf("%llu",a)
#define pllun(a) printf("%llu\n",a)
#define ps(a) printf("%s",a)
#define psn(a) printf("%s\n",a)
#define pc(a) printf("%c",a)
#define pcn(a) printf("c\n",a)
#define pn() printf("\n")
#define pspace() printf(" ")
#define pf(a) printf("%f",a)
#define pfn(a) printf("f\n",a)
#define pd(a) printf("%lf",a)
#define pdn(a) printf("lf\n",a)
#define plliarray(a,n) for(lli i=0;i<n;i++)printf("%lld ",a[i])
#define piarray(a,n) for(lli i=0;i<n;i++)printf("%d ",a[i])
#define plluarray(a,n) for(lli i=0;i<n;i++)printf("%llu ",a[i])
#define pfarray(a,n) for(lli i=0;i<n;i++)printf("%f ",a[i])
#define pdarray(a,n) for(lli i=0;i<n;i++)printf("%lf ",a[i])
#define max(a,b)(a>b?a:b)
#define min(a,b)(a<b?a:b)
#define abs(a) (a>0?a:-a)
#define MOD 1000000007
using namespace std;
#define MAXN 25
#define MAXNN 625
char s[MAXN][MAXN];
int cur,start,dest,n,m;
vector<int> edge[MAXNN],cost[MAXNN];
int dist[MAXNN];
deque<int> Q;
int u,v,t,pos;
int main()
{
si2(m,n);
for(int i=0;i<n;i++)
ss(s[i]);
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cur=i*m+j;
if(s[i][j]=='X')
continue;
if(s[i][j]=='S')
start=cur;
if(s[i][j]=='D')
dest=cur;
if(i>0)
{
if(s[i-1][j]!='X')
{
edge[cur].push_back( (i-1)*m + (j) );
if(s[i-1][j]=='S' || s[i-1][j]=='D')
cost[cur].push_back(0);
else
cost[cur].push_back(s[i-1][j]-'0');
}
}
if(i<n-1)
{
if(s[i+1][j]!='X')
{
edge[cur].push_back( (i+1)*m + (j) );
if(s[i+1][j]=='S' || s[i+1][j]=='D')
cost[cur].push_back(0);
else
cost[cur].push_back(s[i+1][j]-'0');
}
}
if(j>0)
{
if(s[i][j-1]!='X')
{
edge[cur].push_back( (i)*m + (j-1) );
if(s[i][j-1]=='S' || s[i][j-1]=='D')
cost[cur].push_back(0);
else
cost[cur].push_back(s[i][j-1]-'0');
}
}
if(j<m-1)
{
if(s[i][j+1]!='X')
{
edge[cur].push_back( (i)*m + (j+1) );
if(s[i][j+1]=='S' || s[i][j+1]=='D')
cost[cur].push_back(0);
else
cost[cur].push_back(s[i][j+1]-'0');
}
}
}
}
for(int i=0;i<n*m;i++)
{
dist[i]=10000000;
Q.push_back(i);
}
dist[start]=0;
while(!Q.empty())
{
cur=100000000;
for(int i=0;i<Q.size();i++)
{
t=Q[i];
if(dist[t]<cur)
{
cur=dist[t];
u=t;
pos=i;
}
}
Q.erase(Q.begin()+pos);
for(int i=0;i<edge[u].size();i++)
{
v=edge[u][i];
if(dist[v]>dist[u]+cost[u][i])
dist[v]=dist[u]+cost[u][i];
}
}
pi(dist[dest]);
return 0;
}
LyoKV3JpdHRlbiBieTogWWFzaCBLdW1hciAoeWFzaGt1bWFyMTgpCkRoaXJ1YmhhaSBBbWJhbmkgSW5zdGl0dXRlIE9mIEluZm9ybWF0aW9uIEFuZCBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ3ksIEdhbmRoaW5hZ2FyIChEQS1JSUNUIEdBTkRISU5BR0FSKQoxc3QgWWVhciBJQ1QgQlRFQ0ggc3R1ZGVudAoqLwoKI2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPGlvbWFuaXA+CiNpbmNsdWRlPGFsZ29yaXRobT4KI2luY2x1ZGU8bWF0aC5oPgojaW5jbHVkZTxjc3RkaW8+CiNpbmNsdWRlPGN0eXBlLmg+CiNpbmNsdWRlPGNzdHJpbmc+CiNpbmNsdWRlPHN0cmluZy5oPgojaW5jbHVkZTxpbnR0eXBlcy5oPgojaW5jbHVkZTx2ZWN0b3I+CiNpbmNsdWRlPHNldD4KI2luY2x1ZGU8bWFwPgojaW5jbHVkZTxxdWV1ZT4KI2luY2x1ZGU8c3RhY2s+CiNpbmNsdWRlPGZ1bmN0aW9uYWw+CiNpbmNsdWRlPGNtYXRoPgojaW5jbHVkZTxjc3RkbGliPgojaW5jbHVkZTxjYXNzZXJ0PgoKI2RlZmluZSBsbGkgbG9uZyBsb25nIGludAojZGVmaW5lIGxsdSB1bnNpZ25lZCBsb25nIGxvbmcgaW50CgojZGVmaW5lIHNsbHUoYSkgc2NhbmYoIiVsbHUiLCZhKQojZGVmaW5lIHNsbHUyKGEsYikgc2NhbmYoIiVsbHUgJWxsdSIsJmEsJmIpCiNkZWZpbmUgc2xsdTMoYSxiLGMpIHNjYW5mKCIlbGx1ICVsbHUgJWxsdSIsJmEsJmIsJmMpCiNkZWZpbmUgc2xsdTQoYSxiLGMsZCkgc2NhbmYoIiVsbHUgJWxsdSAlbGx1ICVsbHUiLCZhLCZiLCZjLCZkKQojZGVmaW5lIHNsbHU1KGEsYixjLGQsZSkgc2NhbmYoIiVsbHUgJWxsdSAlbGx1ICVsbHUgJWxsdSIsJmEsJmIsJmMsJmQsJmUpCiNkZWZpbmUgc2koYSkgc2NhbmYoIiVkIiwmYSkKI2RlZmluZSBzaTIoYSxiKSBzY2FuZigiJWQgJWQiLCZhLCZiKQojZGVmaW5lIHNpMyhhLGIsYykgc2NhbmYoIiVkICVkICVkIiwmYSwmYiwmYykKI2RlZmluZSBzaTQoYSxiLGMsZCkgc2NhbmYoIiVkICVkICVkICVkIiwmYSwmYiwmYywmZCkKI2RlZmluZSBzaTUoYSxiLGMsZCxlKSBzY2FuZigiJWQgJWQgJWQgJWQgJWQiLCZhLCZiLCZjLCZkLCZlKQojZGVmaW5lIHNsbGkoYSkgc2NhbmYoIiVsbGQiLCZhKQojZGVmaW5lIHNsbGkyKGEsYikgc2NhbmYoIiVsbGQgJWxsZCIsJmEsJmIpCiNkZWZpbmUgc2xsaTMoYSxiLGMpIHNjYW5mKCIlbGxkICVsbGQgJWxsZCIsJmEsJmIsJmMpCiNkZWZpbmUgc2xsaTQoYSxiLGMsZCkgc2NhbmYoIiVsbGQgJWxsZCAlbGxkICVsbGQiLCZhLCZiLCZjLCZkKQojZGVmaW5lIHNsbGk1KGEsYixjLGQsZSkgc2NhbmYoIiVsbGQgJWxsZCAlbGxkICVsbGQgJWxsZCIsJmEsJmIsJmMsJmQsJmUpCiNkZWZpbmUgc3MoYSkgc2NhbmYoIiVzIixhKQojZGVmaW5lIHNjKGEpIHNjYW5mKCIlYyIsJmEpCiNkZWZpbmUgc2YoYSkgc2NhbmYoIiVmIiwmYSkKI2RlZmluZSBzZjIoYSxiKSBzY2FuZigiJWYgJWYiLCZhLCZiKQojZGVmaW5lIHNmMyhhLGIsYykgc2NhbmYoIiVmICVmICVmIiwmYSwmYiwmYykKI2RlZmluZSBzZjQoYSxiLGMsZCkgc2NhbmYoIiVmICVmICVmICVmIiwmYSwmYiwmYywmZCkKI2RlZmluZSBzZjUoYSxiLGMsZCxlKSBzY2FuZigiJWYgJWYgJWYgJWYgJWYiLCZhLCZiLCZjLCZkLCZlKQojZGVmaW5lIHNkKGEpIHNjYW5mKCIlbGYiLCZhKQojZGVmaW5lIHNkMihhLGIpIHNjYW5mKCIlbGYgJWxmIiwmYSwmYikKI2RlZmluZSBzZDMoYSxiLGMpIHNjYW5mKCIlbGYgJWxmICVsZiIsJmEsJmIsJmMpCiNkZWZpbmUgc2Q0KGEsYixjLGQpIHNjYW5mKCIlbGYgJWxmICVsZiAlbGYiLCZhLCZiLCZjLCZkKQojZGVmaW5lIHNkNShhLGIsYyxkLGUpIHNjYW5mKCIlbGYgJWxmICVsZiAlbGYgJWxmIiwmYSwmYiwmYywmZCwmZSkKI2RlZmluZSBzbGx1YXJyYXkoYSxuKSBmb3IobGxpIGk9MDtpPG47aSsrKXNsbHUoYVtpXSkKI2RlZmluZSBzaWFycmF5KGEsbikgZm9yKGxsaSBpPTA7aTxuO2krKylzaShhW2ldKQojZGVmaW5lIHNsbGlhcnJheShhLG4pIGZvcihsbGkgaT0wO2k8bjtpKyspc2xsaShhW2ldKQojZGVmaW5lIHNmYXJyYXkoYSxuKSBmb3IobGxpIGk9MDtpPG47aSsrKXNmKGFbaV0pCiNkZWZpbmUgc2RhcnJheShhLG4pIGZvcihsbGkgaT0wO2k8bjtpKyspc2QoYVtpXSkKCiNkZWZpbmUgcGxsaShhKSBwcmludGYoIiVsbGQiLGEpCiNkZWZpbmUgcGxsaW4oYSkgcHJpbnRmKCIlbGxkXG4iLGEpCiNkZWZpbmUgcGkoYSkgcHJpbnRmKCIlZCIsYSkKI2RlZmluZSBwaW4oYSkgcHJpbnRmKCIlZFxuIixhKQojZGVmaW5lIHBsbHUoYSkgcHJpbnRmKCIlbGx1IixhKQojZGVmaW5lIHBsbHVuKGEpIHByaW50ZigiJWxsdVxuIixhKQojZGVmaW5lIHBzKGEpIHByaW50ZigiJXMiLGEpCiNkZWZpbmUgcHNuKGEpIHByaW50ZigiJXNcbiIsYSkKI2RlZmluZSBwYyhhKSBwcmludGYoIiVjIixhKQojZGVmaW5lIHBjbihhKSBwcmludGYoImNcbiIsYSkKI2RlZmluZSBwbigpIHByaW50ZigiXG4iKQojZGVmaW5lIHBzcGFjZSgpIHByaW50ZigiICIpCiNkZWZpbmUgcGYoYSkgcHJpbnRmKCIlZiIsYSkKI2RlZmluZSBwZm4oYSkgcHJpbnRmKCJmXG4iLGEpCiNkZWZpbmUgcGQoYSkgcHJpbnRmKCIlbGYiLGEpCiNkZWZpbmUgcGRuKGEpIHByaW50ZigibGZcbiIsYSkKI2RlZmluZSBwbGxpYXJyYXkoYSxuKSBmb3IobGxpIGk9MDtpPG47aSsrKXByaW50ZigiJWxsZCAiLGFbaV0pCiNkZWZpbmUgcGlhcnJheShhLG4pIGZvcihsbGkgaT0wO2k8bjtpKyspcHJpbnRmKCIlZCAiLGFbaV0pCiNkZWZpbmUgcGxsdWFycmF5KGEsbikgZm9yKGxsaSBpPTA7aTxuO2krKylwcmludGYoIiVsbHUgIixhW2ldKQojZGVmaW5lIHBmYXJyYXkoYSxuKSBmb3IobGxpIGk9MDtpPG47aSsrKXByaW50ZigiJWYgIixhW2ldKQojZGVmaW5lIHBkYXJyYXkoYSxuKSBmb3IobGxpIGk9MDtpPG47aSsrKXByaW50ZigiJWxmICIsYVtpXSkKCiNkZWZpbmUgbWF4KGEsYikoYT5iP2E6YikKI2RlZmluZSBtaW4oYSxiKShhPGI/YTpiKQojZGVmaW5lIGFicyhhKSAoYT4wP2E6LWEpCgojZGVmaW5lIE1PRCAxMDAwMDAwMDA3Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojZGVmaW5lIE1BWE4gMjUKI2RlZmluZSBNQVhOTiA2MjUKCmNoYXIgc1tNQVhOXVtNQVhOXTsKaW50IGN1cixzdGFydCxkZXN0LG4sbTsKdmVjdG9yPGludD4gZWRnZVtNQVhOTl0sY29zdFtNQVhOTl07CmludCBkaXN0W01BWE5OXTsKZGVxdWU8aW50PiBROwppbnQgdSx2LHQscG9zOwoKaW50IG1haW4oKQp7CiAgICBzaTIobSxuKTsKCiAgICBmb3IoaW50IGk9MDtpPG47aSsrKQogICAgICAgIHNzKHNbaV0pOwoKICAgIGZvcihpbnQgaT0wO2k8bjtpKyspCiAgICB7CiAgICAgICAgZm9yKGludCBqPTA7ajxtO2orKykKICAgICAgICB7CiAgICAgICAgICAgIGN1cj1pKm0rajsKICAgICAgICAgICAgaWYoc1tpXVtqXT09J1gnKQogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIGlmKHNbaV1bal09PSdTJykKICAgICAgICAgICAgICAgIHN0YXJ0PWN1cjsKICAgICAgICAgICAgaWYoc1tpXVtqXT09J0QnKQogICAgICAgICAgICAgICAgZGVzdD1jdXI7CgogICAgICAgICAgICBpZihpPjApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmKHNbaS0xXVtqXSE9J1gnKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGVkZ2VbY3VyXS5wdXNoX2JhY2soIChpLTEpKm0gKyAoaikgKTsKICAgICAgICAgICAgICAgICAgICBpZihzW2ktMV1bal09PSdTJyB8fCBzW2ktMV1bal09PSdEJykKICAgICAgICAgICAgICAgICAgICAgICAgY29zdFtjdXJdLnB1c2hfYmFjaygwKTsKICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIGNvc3RbY3VyXS5wdXNoX2JhY2soc1tpLTFdW2pdLScwJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoaTxuLTEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmKHNbaSsxXVtqXSE9J1gnKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGVkZ2VbY3VyXS5wdXNoX2JhY2soIChpKzEpKm0gKyAoaikgKTsKICAgICAgICAgICAgICAgICAgICBpZihzW2krMV1bal09PSdTJyB8fCBzW2krMV1bal09PSdEJykKICAgICAgICAgICAgICAgICAgICAgICAgY29zdFtjdXJdLnB1c2hfYmFjaygwKTsKICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIGNvc3RbY3VyXS5wdXNoX2JhY2soc1tpKzFdW2pdLScwJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmKGo+MCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYoc1tpXVtqLTFdIT0nWCcpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgZWRnZVtjdXJdLnB1c2hfYmFjayggKGkpKm0gKyAoai0xKSApOwogICAgICAgICAgICAgICAgICAgIGlmKHNbaV1bai0xXT09J1MnIHx8IHNbaV1bai0xXT09J0QnKQogICAgICAgICAgICAgICAgICAgICAgICBjb3N0W2N1cl0ucHVzaF9iYWNrKDApOwogICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgY29zdFtjdXJdLnB1c2hfYmFjayhzW2ldW2otMV0tJzAnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBpZihqPG0tMSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYoc1tpXVtqKzFdIT0nWCcpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgZWRnZVtjdXJdLnB1c2hfYmFjayggKGkpKm0gKyAoaisxKSApOwogICAgICAgICAgICAgICAgICAgIGlmKHNbaV1baisxXT09J1MnIHx8IHNbaV1baisxXT09J0QnKQogICAgICAgICAgICAgICAgICAgICAgICBjb3N0W2N1cl0ucHVzaF9iYWNrKDApOwogICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgY29zdFtjdXJdLnB1c2hfYmFjayhzW2ldW2orMV0tJzAnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBmb3IoaW50IGk9MDtpPG4qbTtpKyspCiAgICB7CiAgICAgICAgZGlzdFtpXT0xMDAwMDAwMDsKICAgICAgICBRLnB1c2hfYmFjayhpKTsKICAgIH0KICAgIGRpc3Rbc3RhcnRdPTA7CgoKICAgIHdoaWxlKCFRLmVtcHR5KCkpCiAgICB7CiAgICAgICAgY3VyPTEwMDAwMDAwMDsKICAgICAgICBmb3IoaW50IGk9MDtpPFEuc2l6ZSgpO2krKykKICAgICAgICB7CiAgICAgICAgICAgIHQ9UVtpXTsKICAgICAgICAgICAgaWYoZGlzdFt0XTxjdXIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGN1cj1kaXN0W3RdOwogICAgICAgICAgICAgICAgdT10OwogICAgICAgICAgICAgICAgcG9zPWk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgUS5lcmFzZShRLmJlZ2luKCkrcG9zKTsKCiAgICAgICAgZm9yKGludCBpPTA7aTxlZGdlW3VdLnNpemUoKTtpKyspCiAgICAgICAgewogICAgICAgICAgICB2PWVkZ2VbdV1baV07CiAgICAgICAgICAgIGlmKGRpc3Rbdl0+ZGlzdFt1XStjb3N0W3VdW2ldKQogICAgICAgICAgICAgICAgZGlzdFt2XT1kaXN0W3VdK2Nvc3RbdV1baV07CiAgICAgICAgfQogICAgfQoKICAgIHBpKGRpc3RbZGVzdF0pOwoKICAgIHJldHVybiAwOwp9Cg==