#include <iostream>
#include <string>
#include <cstring>
#include <vector>
#include <set>
#include <algorithm>
#include <math.h>
using namespace std;
string ToString2(double f)
{
string strOut = to_string(f + 0.005);
return strOut.substr(0, strOut.length() - 4);
}
class CStar
{
public:
char m_strName[16];
int m_SzerSt;
int m_SzerMin;
int m_DlugHH;
int m_DlugMM;
char m_chSphere;
double m_fJasn;
static bool CompDek(const CStar* S1, const CStar* S2)
{
if (S1->m_chSphere == S2->m_chSphere)
{
if (S1->m_chSphere == 'S')
{
if (S1->m_SzerSt == S2->m_SzerSt)
return S1->m_SzerMin < S2->m_SzerMin;
else
return S1->m_SzerSt < S2->m_SzerSt;
}
else
{
if (S1->m_SzerSt == S2->m_SzerSt)
return S1->m_SzerMin > S2->m_SzerMin;
else
return S1->m_SzerSt > S2->m_SzerSt;
}
}
else
return S1->m_chSphere < S2->m_chSphere;
}
static bool CompRek(const CStar* S1, const CStar* S2)
{
if (S1->m_DlugHH == S2->m_DlugHH)
return S1->m_DlugMM < S2->m_DlugMM;
else
return S1->m_DlugHH < S2->m_DlugHH;
}
static bool CompJasn(const CStar* S1, const CStar* S2)
{
if (S1->m_fJasn == S2->m_fJasn)
return strcmp(S1->m_strName, S2->m_strName) < 0;
else
return S1->m_fJasn < S2->m_fJasn;
}
};
int main()
{
string strName;
long N, M;
cin >> N >> M;
vector<CStar*> vStars(N);
CStar** pStar = vStars.data();
while (N--)
{
CStar* S = new CStar();
*pStar = S;
scanf("%s %02d%02d%c %02d%02d %lf", &S->m_strName, &S->m_SzerSt, &S->m_SzerMin, &S->m_chSphere, &S->m_DlugHH, &S->m_DlugMM, &S->m_fJasn);
pStar++;
}
std::sort(vStars.begin(), vStars.end(), CStar::CompJasn);
CStar L1, L2;
while (M--)
{
scanf("%02d%02d%c %02d%02d%c %02d%02d %02d%02d", &L1.m_SzerSt, &L1.m_SzerMin, &L1.m_chSphere, &L2.m_SzerSt, &L2.m_SzerMin, &L2.m_chSphere, &L1.m_DlugHH, &L1.m_DlugMM, &L2.m_DlugHH, &L2.m_DlugMM);
CStar* pBest = NULL;
for (auto it : vStars)
{
if (CStar::CompDek(it, &L1)) continue;
if (CStar::CompDek(&L2, it)) continue;
if (CStar::CompRek(it, &L1)) continue;
if (CStar::CompRek(&L2, it)) continue;
pBest = it;
break;
}
if (pBest == NULL)
{
cout << "BRAK\n";
}
else
{
cout << ToString2(pBest->m_fJasn) << ' ' << pBest->m_strName << endl;
}
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPiAKI2luY2x1ZGUgPHN0cmluZz4gCiNpbmNsdWRlIDxjc3RyaW5nPiAKI2luY2x1ZGUgPHZlY3Rvcj4gCiNpbmNsdWRlIDxzZXQ+IAojaW5jbHVkZSA8YWxnb3JpdGhtPiAKI2luY2x1ZGUgPG1hdGguaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJpbmcgVG9TdHJpbmcyKGRvdWJsZSBmKQp7CglzdHJpbmcgc3RyT3V0ID0gdG9fc3RyaW5nKGYgKyAwLjAwNSk7CglyZXR1cm4gc3RyT3V0LnN1YnN0cigwLCBzdHJPdXQubGVuZ3RoKCkgLSA0KTsKfQoKY2xhc3MgQ1N0YXIKewpwdWJsaWM6CgoJY2hhciBtX3N0ck5hbWVbMTZdOwoJaW50IG1fU3plclN0OwoJaW50IG1fU3plck1pbjsKCglpbnQgbV9EbHVnSEg7CglpbnQgbV9EbHVnTU07CgljaGFyIG1fY2hTcGhlcmU7CgoJZG91YmxlIG1fZkphc247CgoJc3RhdGljIGJvb2wgQ29tcERlayhjb25zdCBDU3RhciogUzEsIGNvbnN0IENTdGFyKiBTMikKCXsKCQlpZiAoUzEtPm1fY2hTcGhlcmUgPT0gUzItPm1fY2hTcGhlcmUpCgkJewoJCQlpZiAoUzEtPm1fY2hTcGhlcmUgPT0gJ1MnKQoJCQl7CgkJCQlpZiAoUzEtPm1fU3plclN0ID09IFMyLT5tX1N6ZXJTdCkKCQkJCQlyZXR1cm4gUzEtPm1fU3plck1pbiA8IFMyLT5tX1N6ZXJNaW47CgkJCQllbHNlCgkJCQkJcmV0dXJuIFMxLT5tX1N6ZXJTdCA8IFMyLT5tX1N6ZXJTdDsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCWlmIChTMS0+bV9TemVyU3QgPT0gUzItPm1fU3plclN0KQoJCQkJCXJldHVybiBTMS0+bV9TemVyTWluID4gUzItPm1fU3plck1pbjsKCQkJCWVsc2UKCQkJCQlyZXR1cm4gUzEtPm1fU3plclN0ID4gUzItPm1fU3plclN0OwoJCQl9CgkJfQoJCWVsc2UKCQkJcmV0dXJuIFMxLT5tX2NoU3BoZXJlIDwgUzItPm1fY2hTcGhlcmU7Cgl9CgoJc3RhdGljIGJvb2wgQ29tcFJlayhjb25zdCBDU3RhciogUzEsIGNvbnN0IENTdGFyKiBTMikKCXsKCQlpZiAoUzEtPm1fRGx1Z0hIID09IFMyLT5tX0RsdWdISCkKCQkJcmV0dXJuIFMxLT5tX0RsdWdNTSA8IFMyLT5tX0RsdWdNTTsKCQllbHNlCgkJCXJldHVybiBTMS0+bV9EbHVnSEggPCBTMi0+bV9EbHVnSEg7Cgl9CgoJc3RhdGljIGJvb2wgQ29tcEphc24oY29uc3QgQ1N0YXIqIFMxLCBjb25zdCBDU3RhciogUzIpCgl7CgkJaWYgKFMxLT5tX2ZKYXNuID09IFMyLT5tX2ZKYXNuKQoJCQlyZXR1cm4gc3RyY21wKFMxLT5tX3N0ck5hbWUsIFMyLT5tX3N0ck5hbWUpIDwgMDsKCQllbHNlCgkJCXJldHVybiBTMS0+bV9mSmFzbiA8IFMyLT5tX2ZKYXNuOwoJfQp9OwoKaW50IG1haW4oKQp7CglzdHJpbmcgc3RyTmFtZTsKCWxvbmcgTiwgTTsKCgljaW4gPj4gTiA+PiBNOwoKCXZlY3RvcjxDU3Rhcio+IHZTdGFycyhOKTsKCglDU3RhcioqIHBTdGFyID0gdlN0YXJzLmRhdGEoKTsKCgl3aGlsZSAoTi0tKQoJewoJCUNTdGFyKiBTID0gbmV3IENTdGFyKCk7CgkJKnBTdGFyID0gUzsKCgkJc2NhbmYoIiVzICUwMmQlMDJkJWMgJTAyZCUwMmQgJWxmIiwgJlMtPm1fc3RyTmFtZSwgJlMtPm1fU3plclN0LCAmUy0+bV9TemVyTWluLCAmUy0+bV9jaFNwaGVyZSwgJlMtPm1fRGx1Z0hILCAmUy0+bV9EbHVnTU0sICZTLT5tX2ZKYXNuKTsKCQlwU3RhcisrOwoJfQoKCXN0ZDo6c29ydCh2U3RhcnMuYmVnaW4oKSwgdlN0YXJzLmVuZCgpLCBDU3Rhcjo6Q29tcEphc24pOwoKCUNTdGFyIEwxLCBMMjsKCgl3aGlsZSAoTS0tKQoJewoJCXNjYW5mKCIlMDJkJTAyZCVjICUwMmQlMDJkJWMgJTAyZCUwMmQgJTAyZCUwMmQiLCAmTDEubV9TemVyU3QsICZMMS5tX1N6ZXJNaW4sICZMMS5tX2NoU3BoZXJlLCAmTDIubV9TemVyU3QsICZMMi5tX1N6ZXJNaW4sICZMMi5tX2NoU3BoZXJlLCAmTDEubV9EbHVnSEgsICZMMS5tX0RsdWdNTSwgJkwyLm1fRGx1Z0hILCAmTDIubV9EbHVnTU0pOwoKCQlDU3RhciogcEJlc3QgPSBOVUxMOwoJCWZvciAoYXV0byBpdCA6IHZTdGFycykKCQl7CgkJCWlmIChDU3Rhcjo6Q29tcERlayhpdCwgJkwxKSkgY29udGludWU7CgkJCWlmIChDU3Rhcjo6Q29tcERlaygmTDIsIGl0KSkgY29udGludWU7CgkJCWlmIChDU3Rhcjo6Q29tcFJlayhpdCwgJkwxKSkgY29udGludWU7CgkJCWlmIChDU3Rhcjo6Q29tcFJlaygmTDIsIGl0KSkgY29udGludWU7CgoJCQlwQmVzdCA9IGl0OwoJCQlicmVhazsKCQl9CgoJCWlmIChwQmVzdCA9PSBOVUxMKQoJCXsKCQkJY291dCA8PCAiQlJBS1xuIjsKCQl9CgkJZWxzZQoJCXsKCQkJY291dCA8PCBUb1N0cmluZzIocEJlc3QtPm1fZkphc24pIDw8ICcgJyA8PCBwQmVzdC0+bV9zdHJOYW1lIDw8IGVuZGw7CgkJfQoJfQp9