#pragma GCC optimize("O3") #pragma GCC optimize("Ofast") #pragma GCC optimize("unroll-loops") #pragma GCC target("avx,avx2") #include #define INF 1000000001LL #define LNF 1000000000000000001LL #define MOD 998244353LL #define MAX 2001 #define long long long #define all(x) x.begin(),x.end() using namespace std; vector> graph[1005]; void dijkstra(int x, vector &vis, vector> graph[]) { priority_queue, vector>, greater>> pq; for(int i = 0; i> n >> m >> k; vector arr; arr.push_back({1,1,1,1}); for(int i = 0; i> a >> b >> c >> d; arr.push_back({a,b,c,d}); } arr.push_back({n,m,n,m}); n = arr.size(); for(int i = 0; i vis(n); dijkstra(0,vis,graph); cout << vis[n-1]-1 << endl; return 0; }