#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
#define int long long
#define mp make_pair
#define pb push_back
#define pf push_front
#define inf 100000000000000000
#define ff first
#define ss second
#define pii pair<int,int>
#define mod   998244353
#define sz(a) (int)a.size()
#define all(a) a.begin(),a.end()
#define oset tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
#define osetp tree<pair<int,int>, null_type,less<pair<int,int>>, rb_tree_tag,tree_order_statistics_node_update>
#define one(x) __builtin_popcount(x)
#define fone(x) __builtin_clz(n)
#define fraction(x) cout<<setprecision(x)<<fixed
const int d8i[8] = {1, 1, 0, -1, -1, -1, 0, 1};
const int d8j[8] = {0, 1, 1, 1, 0, -1, -1, -1};
const int d4i[4] = {1, 0, -1, 0};
const int d4j[4] = {0, 1, 0, -1};
const int mxn = 1e5;
void solve( ) {
	int n, k, q; cin >> n >> k >> q;
	vector<array<int, 4>>a(n);
	for (int i = 0; i < n; i++) {
		cin >> a[i][0] >> a[i][1] >> a[i][2] >> a[i][3];
	}
	while (q--) {
		int ans = -1;
		int l, y; cin >> l >> y;
		for (int i = 0; i < n; i++) {
			if (a[i][2] <= y and y <= a[i][3]) {
				ans = max(ans, abs(l - a[i][0]));
			}
		}
		cout << ans << '\n';
	}
}
int32_t main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	int t = 1; //cin >> t;
	for (int i = 1; i <= t; i++) {
		solve();
	}
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |