debug
#include<bits/stdc++.h>
using namespace std;
const int N = 20100;
int n,m,k;
struct MEM{
int ids;
int state; // 占用:1,未占用:0
int num;
}mem[N];
int t;
int id,l,r,x;
int p;
int main()
{
cin >> n >> m >> k;
while(k--)
{
cin >> t;
if(t == 0)
{
cin >> id >> l >> r >> x;
int key =1;
int tag = 0;
for(int i=l;i <= r;i++)
{
if(mem[i].state == 0 || (mem[i].state == 1 && mem[i].ids == id))
{
continue;
}
else if(i == l)
{
cout << -1 << endl;
key = 0;
break;
}
else
{
key = 0;
tag = i;
break;
}
}
if(key)
{
for(int i=l;i <= r;i++)
{
mem[i].num = x;
mem[i].ids = id;
mem[i].state = 1;
}
cout << r << endl;
}
else if(tag != 0)
{
tag --;
for(int i=l; i <= tag ;i++) // 弄了一个加1
{
mem[i].num = x;
mem[i].ids = id;
mem[i].state = 1;
}
cout << tag << endl;
}
}
else if(t == 1)
{
cin >> id >> l >> r;
int key = 1;
for(int i=l;i <= r;i++)
{
if(mem[i].state == 1 && mem[i].ids == id)
{
continue;
}
else
{
key = 0;
cout << "FAIL" << endl;
break;
}
}
if(key)
{
cout << "OK" << endl;
for(int i=l;i <= r;i++)
{
mem[i].state = 0; // 全部复原状态
}
}
}
else if(t == 2)
{
cin >> id >> l >> r;
int key = 1;
for(int i=l;i <= r;i++)
{
if(mem[i].state == 0 && mem[i].ids == id)
{
continue;
}
else
{
key = 0;
cout << "FAIL" << endl;
break;
}
}
if(key)
{
cout << "OK" << endl;
for(int i=l;i <= r;i++)
{
mem[i].state = 1; // 全部复原状态
}
} // 这些都不牵扯到值
}
else if(t == 3)
{
cin >> p;
if(mem[p].state == 1)
{
cout << mem[p].ids << " " << mem[p].num << endl;
}
else
{
cout << "0 0" << endl;
}
}
}
return 0;
}