import java.util.ArrayList; import java.util.Scanner; public class Main { public static void main(String[] args) { try (Scanner scan = new Scanner(System.in)) { int N = scan.nextInt(); int C = scan.nextInt(); int V = scan.nextInt(); int inFrom[] = new int[V]; int inTo[] = new int[V]; int inCost[] = new int[V]; int inTime[] = new int[V]; for(int i=0; i pathList = new ArrayList<>(); for(int i=0; i=0; i--) { if(minTime[place][i] != Integer.MAX_VALUE) { int cost = i; int time = minTime[place][i]; for(Path path : pathList) { if(path.start == place) { int nextPlace = path.end; int nextCost = cost - path.cost; int nextTime = time + path.time; if(nextCost < 0) continue; minTime[nextPlace][nextCost] = Math.min(minTime[nextPlace][nextCost], nextTime); } } } } } int ans = Integer.MAX_VALUE; for(int i=0; i<=C; i++) { ans = Math.min(minTime[N][i], ans); } if(ans == Integer.MAX_VALUE) { System.out.println(-1); } else { System.out.println(ans); } } } } class Path { int start; int end; int cost; int time; Path(int start, int end, int cost, int time) { this.start = start; this.end = end; this.cost = cost; this.time = time; } }