#include <iostream>
#include <queue>
using namespace std;
class IOInterface
{
private:
struct IORequest
{
IORequest(int a, int b)
: m_a(a), m_b(b) {}
int m_a;
int m_b;
};
public:
struct ReadRequest: public IORequest
{
ReadRequest(int a, int b)
: IORequest(a, b) {}
};
struct WriteRequest: public IORequest
{
WriteRequest(int a, int b)
: IORequest(a, b) {}
};
void makeIORequest(IORequest request);
protected:
void performIO(ReadRequest request);
void performIO(WriteRequest request);
std::queue<IORequest> m_ioQueue;
};
int main() {
// your code goes here
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8cXVldWU+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgoKY2xhc3MgSU9JbnRlcmZhY2UKewogIHByaXZhdGU6CiAgICBzdHJ1Y3QgSU9SZXF1ZXN0CiAgICB7CiAgICAgIElPUmVxdWVzdChpbnQgYSwgaW50IGIpCiAgICAgICAgOiBtX2EoYSksIG1fYihiKSB7fQogICAgICBpbnQgbV9hOwogICAgICBpbnQgbV9iOwogICAgfTsKCiAgcHVibGljOgogICAgc3RydWN0IFJlYWRSZXF1ZXN0OiBwdWJsaWMgSU9SZXF1ZXN0CiAgICB7CiAgICAgIFJlYWRSZXF1ZXN0KGludCBhLCBpbnQgYikKICAgICAgICA6IElPUmVxdWVzdChhLCBiKSB7fQogICAgfTsKCiAgICBzdHJ1Y3QgV3JpdGVSZXF1ZXN0OiBwdWJsaWMgSU9SZXF1ZXN0CiAgICB7CiAgICAgIFdyaXRlUmVxdWVzdChpbnQgYSwgaW50IGIpCiAgICAgICAgOiBJT1JlcXVlc3QoYSwgYikge30KICAgIH07CgogICAgdm9pZCBtYWtlSU9SZXF1ZXN0KElPUmVxdWVzdCByZXF1ZXN0KTsKCiAgcHJvdGVjdGVkOgogICAgdm9pZCBwZXJmb3JtSU8oUmVhZFJlcXVlc3QgcmVxdWVzdCk7CiAgICB2b2lkIHBlcmZvcm1JTyhXcml0ZVJlcXVlc3QgcmVxdWVzdCk7CiAgICBzdGQ6OnF1ZXVlPElPUmVxdWVzdD4gbV9pb1F1ZXVlOwoKfTsKCmludCBtYWluKCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJcmV0dXJuIDA7Cn0=