#include<bits/stdc++.h>
using namespace std;

// budiž, toto si nechaj zatiaľ, aj keď mňa už aj toto prešlo
#define FOR(i,n)        for(int i=0;i<(int)n;i++)
#define FOB(i,n)        for(int i=n;i>=1;i--)

// size pretypovať na int:
#define SIZE(t) ((int)((t).size()))

// nekonečná, lepšie nazvané aj ohodnotené
const int INFINITY32 = 1073741823; // 2^30 - 1
const long long INFINITY64 = 4611686018427387903LL; // 2^62 - 1

// debug môže ostať
#ifdef EBUG
#define DBG     if(1)
#else
#define DBG     if(0)
#endif

// šikovnejší debug výpis jednej premennej
#define DEBUG(var) DBG { cout << #var << ": " << (var) << endl; }

// point
typedef complex<long double> point;

// ccw: prečo to prasáctvo s 0 a 1 keď máme boolovské konštanty?
bool ccw(point p, point a, point b) { if ((conj(a - p) * (b - p)).imag() <= 0) return false; else return true; }

// ostream operátorov sa naopak oplatí viac
// ale nech vypisujú len ten samotný objekt (a nie napr. endl za ním)
template <class T, class U> ostream& operator<<(ostream& out, const pair<T, U> &par) { out << "[" << par.first << ";" << par.second << "]"; return out; }
template <class T>          ostream& operator<<(ostream& out, const vector<T> &cont) { out << "("; for (const auto &x:cont) out << x << ", "; out << ")"; return out; }
template <class T>          ostream& operator<<(ostream& out, const set<T> &cont)    { out << "{"; for (const auto &x:cont) out << x << ", "; out << "}"; return out; }
template <class T, class U> ostream& operator<<(ostream& out, const map<T,U> &cont)  { out << "{"; for (const auto &x:cont) out << x << ", "; out << "}"; return out; }

int main() {
    // test výpisu
    map<string,int> vek = { {"fero",17}, {"zuza",23}, {"emo",20} };
    cerr << vek << endl;

    // alternatíva výpisu -- niečo robí len ak kompiluješ s -DEBUG
    DEBUG(vek);

    // test fronty
    queue< pair<int,int> > Q;
    Q.push( {47,42} );
    while (!Q.empty()) {
        auto rec = Q.front(); Q.pop();
        cout << rec << endl;
    }
}