def reset():
global a,n
for i in range(n+1):
a[0][i]=1000
a[1][i]=1000
def dijstra(s,e):
global n,m,a,b
x=s
min=1000
a[0][x]=0
for i in range(n):
for j in range(1,n+1):
if b[x][j]>=1 and a[0][j]>b[x][j]+a[0][x]:
if a[0][j]==1000:
a[0][j]=0
a[0][j]=a[0][x]+b[x][j]
a[1][x]=1
min=1000
for j in range(1,n+1):
if a[0][j]<min and a[1][j]!=1:
min=a[0][j]
x=j
n,m,w=map(int,input().split())
a=[[1000 for i in range(n+1)] for j in range(2)]
b=[[0 for i in range(n+1)]for j in range(n+1)]
c=[0 for i in range(n+1)]
for i in range(m):
x, y, z =map(int,input().split())
b[x][y]=z
for i in range(1,n+1):
# print(i)
dijstra(i,w)
c[i]=c[i]+a[0][w]
# for x in range(1,n+1):
# print(a[0][x],end=" ")
# print("")
reset()
dijstra(w,i)
for i in range(1,n+1):
c[i]=c[i]+a[0][i]
# for x in range(1,n+1):
# print(a[0][x],end=" ")
# print("")
max=-1
v=0
for i in range(1,n+1):
if c[i]>max:
v=i
max=c[i]
print(max)
# print(v)