#include <iostream>
#include <fstream>
#include <vector>
//#include <bits/stdc++.h>
using namespace std;
ifstream fin("stergeri.in");
ofstream fout("stergeri.out");
int st[4 * 10000001];
int lz[2 * 10000001];
void lazy(int l, int r, int p){
st[p] = max(0, st[p] + lz[p] * (r - l + 1));
if(l != r){
lz[p * 2] += lz[p];
lz[p * 2 + 1] += lz[p];
}
lz[p] = 0;
}
void build(int l, int r, int p){
if(l == r){
st[p] = 1;
return;
}
int m = (l + r) / 2;
build(l, m, p * 2);
build(m + 1, r, p * 2 + 1);
st[p] = st[p * 2 + 1] + st[p * 2];
}
int query(int l, int r, int p, int l1, int r1){
if(l1 > r1) return 0;
lazy(l, r, p);
if(l == l1 && r == r1){
return st[p];
}
int m = (l + r) / 2;
return query(l, m, p * 2, l1, min(m, r1)) +
query(m + 1, r, p * 2 + 1, max(l1, m + 1), r1);
}
void update(int l, int r, int p, int l1, int r1, int val){
if(l1 > r1) return;
//cout << "l = " << l << " r = " << r << " l1 = " << l1 << " r1 = " << r1 << '\n';
if(l1 == l && r1 == r){
lz[p] += val;
lazy(l, r, p);
return;
}
int m = (l + r) / 2;
update(l, m, p * 2, l1, min(r1, m), val);
update(m + 1, r, p * 2 + 1, max(l1, m + 1), r1, val);
st[p] = st[p * 2] + st[p * 2 + 1];
//cout << "l = " << l << " r = " << r << " st[p] = " << st[p] << '\n';
}
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n, qq, k; fin >> n >> qq >> k;
build(1, n, 1);
for(int ii = 0; ii < qq; ii++){
int l, r; fin >> l >> r;
int l1 = 1, r1 = n;
int p1 = l;
while(l1 <= r1){
int m = (l1 + r1) / 2;
int cnt = query(1, n, 1, 1, m);
if(cnt >= l){
p1 = m;
r1 = m - 1;
}else l1 = m + 1;
}
l1 = 1, r1 = n;
int p2 = r;
while(l1 <= r1){
int m = (l1 + r1) / 2;
int cnt = query(1, n, 1, 1, m);
//cout << "m = " << m << " cnt = " << cnt << '\n';
if(cnt >= r){
p2 = m;
r1 = m - 1;
}else l1 = m + 1;
}
//cout << "( " << l << " , " << r << " ) --- > ( " << p1 << " , " << p2 << " )\n";
update(1, n, 1, p1, p2, -1);
}
int l1 = 1, r1 = n;
int p = k;
while(l1 <= r1){
int m = (l1 + r1) / 2;
int cnt = query(1, n, 1, 1, m);
//cout << "m = " << m << " cnt = " << cnt << '\n';
if(cnt >= k){
p = m;
r1 = m - 1;
}else l1 = m + 1;
}
fout << p << '\n';
return 0;
}