#include <iostream>
#include <string>
#include <sstream>
#include <stdexcept>
int
main (int argc, char *argv[])
{
std::string line;
while (std::getline (std::cin, line)) {
int N, M;
std::istringstream iss (line);
if (!(iss >> N >> M))
throw std::runtime_error ("input error #1");
std::cerr << "N = " << N << ", M = " << M << std::endl;
for (int i =0; i < M; ++i) {
std::string word;
int value1, value2;
if (!(iss >> word))
throw std::runtime_error ("input error #2");
std::istringstream inner_iss (word);
if (inner_iss.peek () != '(' || !inner_iss.ignore () || !(inner_iss >> value1))
throw std::runtime_error ("unexpected tokens; expected (, <value1>");
if (inner_iss.peek () != ',' || !inner_iss.ignore () || !(inner_iss >> value2))
throw std::runtime_error ("unexpected tokens; expected , <value2>");
if (inner_iss.peek () != ')')
throw std::runtime_error ("unexpected token expected )");
std::cerr << "\t value1 = " << value1 << ", value2 = " << value2 << std::endl;
}
}
}
ICAgICNpbmNsdWRlIDxpb3N0cmVhbT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgI2luY2x1ZGUgPHN0cmluZz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAjaW5jbHVkZSA8c3N0cmVhbT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICNpbmNsdWRlIDxzdGRleGNlcHQ+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgIG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIHN0ZDo6c3RyaW5nIGxpbmU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICB3aGlsZSAoc3RkOjpnZXRsaW5lIChzdGQ6OmNpbiwgbGluZSkpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgaW50IE4sIE07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICBzdGQ6OmlzdHJpbmdzdHJlYW0gaXNzIChsaW5lKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgaWYgKCEoaXNzID4+IE4gPj4gTSkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgIHRocm93IHN0ZDo6cnVudGltZV9lcnJvciAoImlucHV0IGVycm9yICMxIik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgc3RkOjpjZXJyIDw8ICJOID0gIiA8PCBOIDw8ICIsIE0gPSAiIDw8IE0gPDwgc3RkOjplbmRsOyAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIGZvciAoaW50IGkgPTA7IGkgPCBNOyArK2kpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICBzdGQ6OnN0cmluZyB3b3JkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgIGludCB2YWx1ZTEsIHZhbHVlMjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICBpZiAoIShpc3MgPj4gd29yZCkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgdGhyb3cgc3RkOjpydW50aW1lX2Vycm9yICgiaW5wdXQgZXJyb3IgIzIiKTsgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICBzdGQ6OmlzdHJpbmdzdHJlYW0gaW5uZXJfaXNzICh3b3JkKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgaWYgKGlubmVyX2lzcy5wZWVrICgpICE9ICcoJyB8fCAhaW5uZXJfaXNzLmlnbm9yZSAoKSB8fCAhKGlubmVyX2lzcyA+PiB2YWx1ZTEpKQogICAgICAgICAgICB0aHJvdyBzdGQ6OnJ1bnRpbWVfZXJyb3IgKCJ1bmV4cGVjdGVkIHRva2VuczsgZXhwZWN0ZWQgKCwgPHZhbHVlMT4iKTsgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgIGlmIChpbm5lcl9pc3MucGVlayAoKSAhPSAnLCcgfHwgIWlubmVyX2lzcy5pZ25vcmUgKCkgIHx8ICEoaW5uZXJfaXNzID4+IHZhbHVlMikpCiAgICAgICAgICAgIHRocm93IHN0ZDo6cnVudGltZV9lcnJvciAoInVuZXhwZWN0ZWQgdG9rZW5zOyBleHBlY3RlZCAsIDx2YWx1ZTI+Iik7ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgaWYgKGlubmVyX2lzcy5wZWVrICgpICE9ICcpJykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHRocm93IHN0ZDo6cnVudGltZV9lcnJvciAoInVuZXhwZWN0ZWQgdG9rZW4gZXhwZWN0ZWQgKSIpOyAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgc3RkOjpjZXJyIDw8ICJcdCB2YWx1ZTEgPSAiIDw8IHZhbHVlMSA8PCAiLCB2YWx1ZTIgPSAiIDw8IHZhbHVlMiA8PCBzdGQ6OmVuZGw7CiAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgIH0g