#include using std::cin; using std::cout; using std::endl; int n, m, l, r, w[200005], v[200005]; long long s, y, sum, ans, fn[200005], fv[200005]; std::pair q[200005]; bool check(int x) { y = sum = 0; fn[0] = fv[0] = 0; for (int i = 1; i <= n; i++) { fn[i] = fn[i - 1]; fv[i] = fv[i - 1]; if (w[i] >= x) { fn[i] += 1; fv[i] += v[i]; } } for (int i = 1; i <= m; i++) { y += (fn[q[i].second] - fn[q[i].first - 1]) * (fv[q[i].second] - fv[q[i].first - 1]); } sum = std::abs(y - s); return y > s; } int main() { ans = std::numeric_limits::max(); l = std::numeric_limits::max(); r = std::numeric_limits::min(); cin >> n >> m >> s; for (int i = 1; i <= n; i++) { cin >> w[i] >> v[i]; l = std::min(l, w[i]); r = std::max(r, w[i]); } for (int i = 1; i <= m; i++) { cin >> q[i].first >> q[i].second; } l -= 1, r += 2; while (l <= r) { int mid = l + r >> 1; if (check(mid)) { l = mid + 1; } else { r = mid - 1; } ans = std::min(ans, sum); } cout << ans << endl; return 0; }