import java.util.*; class miti{ int now; int to; int cost; int time; miti(int now,int to,int cost,int time){ this.now = now; this.to = to; this.cost=cost; this.time = time; } } class mitiComparator implements Comparator{ @Override public int compare(miti o1, miti o2) { if(o1.now>o2.now){ return 1; }else if(o1.now==o2.now){ return 0; }else{ return -1; } } } public class Main { static int ans=Integer.MAX_VALUE; static void dfs(int now,int nowcost,int nowtime,int goal,ArrayList[] mitilist,int limcost){ if(now==goal){ ans=Math.min(nowtime,ans); } if(mitilist[now]==null) return; for(int i=0;ilimcost){ continue; } dfs(+mitilist[now].get(i).to,nowcost+mitilist[now].get(i).cost,nowtime+mitilist[now].get(i).time,goal,mitilist,limcost); } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N=sc.nextInt(); int C =sc.nextInt(); int V=sc.nextInt(); int[] S = new int[V]; int[] T = new int[V]; int[] Y = new int[V]; int[] M=new int[V]; for(int i=0;i[] mitilist = new ArrayList[V+1]; for(miti a:miti1){ if(mitilist[a.now]==null){ mitilist[a.now]=new ArrayList(); } mitilist[a.now].add(a); } dfs(1,0,0,N,mitilist,C); if(ans==Integer.MAX_VALUE){ System.out.println(-1); }else{ System.out.println(ans); } } }