
function Main(input) {
  input=input.split("\n");
  if(input[input.length-1]===''){
    input.pop();
  }
  const N=input[0].split(' ')[0]-0;
  const M=input[0].split(' ')[1]-0;
  const P=input[0].split(' ')[2]-0;
  var ways=[];
  for(var i=0;i<=N;i++){
    ways.push([]);
  }

    
  var temp;
  for(var i=1;i<input.length;i++){
    temp=input[i].split(' ');
    ways[temp[0]-0].push([temp[1]-0,temp[2]-P]);
  }
  var updated=[N];
  var reachable=[N];
  while(updated.length>0){
    ways.forEach((e,i)=>{
      e.forEach(f=>{
        if(f[0]===updated[0]){
          if(!reachable.includes(i)){
            updated.push(i);
            reachable.push(i);
          }
        }
      });
    });
    updated.shift();
  }
  //console.log(reachable);
  var maximum=new Array(N+1);
  maximum.fill(-Infinity);
  maximum[1]=0;
  updated=[1];
  for(var i=0;i<2*N;i++){
    if(updated.length===0){
      break;
    }
    temp=updated[0];
    updated.shift();
    ways[temp].forEach(e=>{
      if(maximum[e[0]]<maximum[temp]+e[1]&&reachable.includes(e[0])){
        updated.push(e[0]);
        maximum[e[0]]=maximum[temp]+e[1];
      }
    });
    
  }
  if(updated.length===0&&maximum[N]!==-Infinity){
    console.log(Math.max(0,maximum[N]));
  }else{
    console.log(-1);
  }
}

//*この行以降は編集しないでください（標準入出力から一度に読み込み、Mainを呼び出します）
Main(require("fs").readFileSync("/dev/stdin", "utf8"));