#include #include int fastest[50][301]; struct SYM{int S;int Y;int M;}; std::vector in[50]; int main(){ int N,C,V; std::cin>>N>>C>>V; while(V--){ SYM sym;int T;std::cin>>sym.S>>T>>sym.Y>>sym.M; sym.S--; in[T-1].push_back(sym); } for (int i=0;ifastest[e.S][j]+e.M)fastest[i][j+e.Y]=fastest[e.S][j]+e.M; } } int min=200000; for(auto m:fastest[N-1])if(min>m)min=m; std::cout<<(min==200000?-1:min); }