#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N=10001;
int n,m,p,t=0,f=0;
int u,v,w;
int mp[N][N];
int mx=-1e15;
int vis[N],ind[N];
int cnt[N],dis[N];
vector<int>V[N];
void spfa(){
t++;
dis[1]=0;
bool fl=0;
queue<int>q;
q.push(1);
while(!q.empty()){
int u=q.front();
q.pop();
vis[u]=0;
for(int i=0;i<V[u].size();i++){
int v=V[u][i];
if(cnt[v]==n) continue;
if(dis[v]>dis[u]+mp[u][v]+p*t){
dis[v]=dis[u]+mp[u][v]+p*t;
if(!vis[v]){
vis[v]=1;
q.push(v);
cnt[v]++;
}
}
}
}
if(cnt[n]==n||(f==1&&dis<0)) cout<<"-1";
else if(dis[n]>0) cout<<0;
else cout<<-dis[n];
}
signed main(){
cin>>n>>m>>p;
for(int i=1;i<=m;i++){
cin>>u>>v>>w;
mp[u][v]=-w;
if(u==v&&w>=p){
f=1;
}
V[u].push_back(v);
}
for(int i=1;i<=n;i++){
dis[i]=1e15;
}
spfa();
}