#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
using namespace std;
#define main dummy_main
int main( ) {
return 0 ;
}
#undef main
class Solution{
public :
vector< string> mostVisitedPattern( vector< string> & user, vector< int > & tm , vector< string> & web) {
int N, a, b, c, i, j, k, ress= - 1 ;
map< vector< string> ,int > mp;
set< string> done;
set< vector< string> > done2;
vector< string> res, tmp, vis;
N = user.size ( ) ;
for ( i= 0 ; i< ( N) ; i++ ) {
for ( j= ( 1 ) ; j< ( N) ; j++ ) {
if ( tm [ j- 1 ] > tm [ j] ) {
swap( user[ j- 1 ] , user[ j] ) ;
swap( tm [ j- 1 ] , tm [ j] ) ;
swap( web[ j- 1 ] , web[ j] ) ;
}
}
}
for ( i= 0 ; i< ( N) ; i++ ) {
if ( done.count ( user[ i] ) ) {
continue ;
}
done.insert ( user[ i] ) ;
vis.clear ( ) ;
for ( j= 0 ; j< ( N) ; j++ ) {
if ( user[ j] == user[ i] ) {
vis.push_back ( web[ j] ) ;
}
}
done2.clear ( ) ;
k = vis.size ( ) ;
for ( a= 0 ; a< ( k) ; a++ ) {
for ( b= ( a+ 1 ) ; b< ( k) ; b++ ) {
for ( c= ( b+ 1 ) ; c< ( k) ; c++ ) {
tmp.clear ( ) ;
tmp.push_back ( vis[ a] ) ;
tmp.push_back ( vis[ b] ) ;
tmp.push_back ( vis[ c] ) ;
if ( done2.count ( tmp) ) {
continue ;
}
done2.insert ( tmp) ;
mp[ tmp] ++ ;
if ( ress < mp[ tmp] || ( ress == mp[ tmp] && res > tmp) ) {
res = tmp;
ress = mp[ tmp] ;
}
}
}
}
}
return res;
}
}
;
// cLay varsion 20190817-1
// --- original code ---
// #define main dummy_main
// {}
// #undef main
//
// class Solution {
// public:
// vector<string> mostVisitedPattern(vector<string>& user, vector<int>& tm, vector<string>& web) {
// int i, j, k, a, b, c;
// int N;
// set<string> done;
// vector<string> vis;
//
// set<vector<string> > done2;
// map<vector<string>,int> mp;
//
// vector<string> res, tmp;
// int ress = -1;
//
//
// N = user.size();
//
// rep(i,N) rep(j,1,N) if(tm[j-1] > tm[j]){
// swap(user[j-1], user[j]);
// swap(tm[j-1], tm[j]);
// swap(web[j-1], web[j]);
// }
//
// rep(i,N){
// if(done.count(user[i])) continue;
// done.insert(user[i]);
//
// vis.clear();
// rep(j,N) if(user[j]==user[i]) vis.push_back(web[j]);
//
// done2.clear();
// k = vis.size();
// rep(a,k) rep(b,a+1,k) rep(c,b+1,k){
// tmp.clear();
// tmp.push_back(vis[a]);
// tmp.push_back(vis[b]);
// tmp.push_back(vis[c]);
// if(done2.count(tmp)) continue;
// done2.insert(tmp);
// mp[tmp]++;
// if(ress < mp[tmp] || (ress == mp[tmp] && res > tmp)){
// res = tmp;
// ress = mp[tmp];
// }
// }
// }
//
// return res;
// }
// };
I3ByYWdtYSBHQ0Mgb3B0aW1pemUgKCJPZmFzdCIpCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbWFpbiBkdW1teV9tYWluCmludCBtYWluKCl7CiAgcmV0dXJuIDA7Cn0KI3VuZGVmIG1haW4KY2xhc3MgU29sdXRpb257CiAgcHVibGljOgogIHZlY3RvcjxzdHJpbmc+IG1vc3RWaXNpdGVkUGF0dGVybih2ZWN0b3I8c3RyaW5nPiYgdXNlciwgdmVjdG9yPGludD4mIHRtLCB2ZWN0b3I8c3RyaW5nPiYgd2ViKXsKICAgIGludCBOLCBhLCBiLCBjLCBpLCBqLCBrLCByZXNzPS0xOwogICAgbWFwPHZlY3RvcjxzdHJpbmc+LGludD4gbXA7CiAgICBzZXQ8c3RyaW5nPiBkb25lOwogICAgc2V0PHZlY3RvcjxzdHJpbmc+ID4gZG9uZTI7CiAgICB2ZWN0b3I8c3RyaW5nPiByZXMsIHRtcCwgdmlzOwogICAgTiA9IHVzZXIuc2l6ZSgpOwogICAgZm9yKGk9MDtpPChOKTtpKyspewogICAgICBmb3Ioaj0oMSk7ajwoTik7aisrKXsKICAgICAgICBpZih0bVtqLTFdID4gdG1bal0pewogICAgICAgICAgc3dhcCh1c2VyW2otMV0sIHVzZXJbal0pOwogICAgICAgICAgc3dhcCh0bVtqLTFdLCB0bVtqXSk7CiAgICAgICAgICBzd2FwKHdlYltqLTFdLCB3ZWJbal0pOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgZm9yKGk9MDtpPChOKTtpKyspewogICAgICBpZihkb25lLmNvdW50KHVzZXJbaV0pKXsKICAgICAgICBjb250aW51ZTsKICAgICAgfQogICAgICBkb25lLmluc2VydCh1c2VyW2ldKTsKICAgICAgdmlzLmNsZWFyKCk7CiAgICAgIGZvcihqPTA7ajwoTik7aisrKXsKICAgICAgICBpZih1c2VyW2pdPT11c2VyW2ldKXsKICAgICAgICAgIHZpcy5wdXNoX2JhY2sod2ViW2pdKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZG9uZTIuY2xlYXIoKTsKICAgICAgayA9IHZpcy5zaXplKCk7CiAgICAgIGZvcihhPTA7YTwoayk7YSsrKXsKICAgICAgICBmb3IoYj0oYSsxKTtiPChrKTtiKyspewogICAgICAgICAgZm9yKGM9KGIrMSk7Yzwoayk7YysrKXsKICAgICAgICAgICAgdG1wLmNsZWFyKCk7CiAgICAgICAgICAgIHRtcC5wdXNoX2JhY2sodmlzW2FdKTsKICAgICAgICAgICAgdG1wLnB1c2hfYmFjayh2aXNbYl0pOwogICAgICAgICAgICB0bXAucHVzaF9iYWNrKHZpc1tjXSk7CiAgICAgICAgICAgIGlmKGRvbmUyLmNvdW50KHRtcCkpewogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGRvbmUyLmluc2VydCh0bXApOwogICAgICAgICAgICBtcFt0bXBdKys7CiAgICAgICAgICAgIGlmKHJlc3MgPCBtcFt0bXBdIHx8IChyZXNzID09IG1wW3RtcF0gJiYgcmVzID4gdG1wKSl7CiAgICAgICAgICAgICAgcmVzID0gdG1wOwogICAgICAgICAgICAgIHJlc3MgPSBtcFt0bXBdOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gcmVzOwogIH0KfQo7Ci8vIGNMYXkgdmFyc2lvbiAyMDE5MDgxNy0xCgovLyAtLS0gb3JpZ2luYWwgY29kZSAtLS0KLy8gI2RlZmluZSBtYWluIGR1bW15X21haW4KLy8ge30KLy8gI3VuZGVmIG1haW4KLy8gCi8vIGNsYXNzIFNvbHV0aW9uIHsKLy8gcHVibGljOgovLyAgIHZlY3RvcjxzdHJpbmc+IG1vc3RWaXNpdGVkUGF0dGVybih2ZWN0b3I8c3RyaW5nPiYgdXNlciwgdmVjdG9yPGludD4mIHRtLCB2ZWN0b3I8c3RyaW5nPiYgd2ViKSB7Ci8vICAgICBpbnQgaSwgaiwgaywgYSwgYiwgYzsKLy8gICAgIGludCBOOwovLyAgICAgc2V0PHN0cmluZz4gZG9uZTsKLy8gICAgIHZlY3RvcjxzdHJpbmc+IHZpczsKLy8gCi8vICAgICBzZXQ8dmVjdG9yPHN0cmluZz4gPiBkb25lMjsKLy8gICAgIG1hcDx2ZWN0b3I8c3RyaW5nPixpbnQ+IG1wOwovLyAKLy8gICAgIHZlY3RvcjxzdHJpbmc+IHJlcywgdG1wOwovLyAgICAgaW50IHJlc3MgPSAtMTsKLy8gCi8vICAgICAKLy8gICAgIE4gPSB1c2VyLnNpemUoKTsKLy8gCi8vICAgICByZXAoaSxOKSByZXAoaiwxLE4pIGlmKHRtW2otMV0gPiB0bVtqXSl7Ci8vICAgICAgIHN3YXAodXNlcltqLTFdLCB1c2VyW2pdKTsKLy8gICAgICAgc3dhcCh0bVtqLTFdLCB0bVtqXSk7Ci8vICAgICAgIHN3YXAod2ViW2otMV0sIHdlYltqXSk7Ci8vICAgICB9Ci8vIAovLyAgICAgcmVwKGksTil7Ci8vICAgICAgIGlmKGRvbmUuY291bnQodXNlcltpXSkpIGNvbnRpbnVlOwovLyAgICAgICBkb25lLmluc2VydCh1c2VyW2ldKTsKLy8gCi8vICAgICAgIHZpcy5jbGVhcigpOwovLyAgICAgICByZXAoaixOKSBpZih1c2VyW2pdPT11c2VyW2ldKSB2aXMucHVzaF9iYWNrKHdlYltqXSk7Ci8vIAovLyAgICAgICBkb25lMi5jbGVhcigpOwovLyAgICAgICBrID0gdmlzLnNpemUoKTsKLy8gICAgICAgcmVwKGEsaykgcmVwKGIsYSsxLGspIHJlcChjLGIrMSxrKXsKLy8gICAgICAgICB0bXAuY2xlYXIoKTsKLy8gICAgICAgICB0bXAucHVzaF9iYWNrKHZpc1thXSk7Ci8vICAgICAgICAgdG1wLnB1c2hfYmFjayh2aXNbYl0pOwovLyAgICAgICAgIHRtcC5wdXNoX2JhY2sodmlzW2NdKTsKLy8gICAgICAgICBpZihkb25lMi5jb3VudCh0bXApKSBjb250aW51ZTsKLy8gICAgICAgICBkb25lMi5pbnNlcnQodG1wKTsKLy8gICAgICAgICBtcFt0bXBdKys7Ci8vICAgICAgICAgaWYocmVzcyA8IG1wW3RtcF0gfHwgKHJlc3MgPT0gbXBbdG1wXSAmJiByZXMgPiB0bXApKXsKLy8gICAgICAgICAgIHJlcyA9IHRtcDsKLy8gICAgICAgICAgIHJlc3MgPSBtcFt0bXBdOwovLyAgICAgICAgIH0KLy8gICAgICAgfQovLyAgICAgfQovLyAKLy8gICAgIHJldHVybiByZXM7Ci8vICAgfQovLyB9Owo=