#include<iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
static inline bool scan(int& a, int& b, vector<vector<int>>& v, int h = 0) {
for (int i = a; i < b; i++) {
if (v[i][h]) return false;
}
return true;
}
static inline void fill(int& a, int& b, vector<vector<int>>& v, int h, const int&val) {
for (int i = a; i < b; i++) v[i][h] = val;
return;
}
static inline void solve() {
int n, m1, m2;
cin >> n >> m1 >> m2;
vector<vector<int>>v(0, vector<int>(max(m1,m2)));
for (register int i = 0; i < m1; i++) {
int a, b;
cin >> a >> b;
v.resize(max(v.size(), (size_t)b));
if (scan(a, b, v) ? false : true) {
int j = 0;
while (true) {
int val = scan(a, b, v, j);
j++;
if (val == false)break;
};
fill(a, b, v, j, 1);
}
fill(a, b, v, 0, 1);
}
return;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
solve();
return 0;
}