#include <bits/stdc++.h>
#include <code.h>
vector<pair<int, int>> ZapisiTacke(int n)
{
    vector <pair<int, int>> tacke;
    tacke.push_back({0, 0});
    for (int i=1; i<=n-1; i++)
    {
        tacke.push_back({n-i, i});
    }
    return tacke;
}
vector<int> Resi(int n, int q)
{
    vector <int> ans;
    int piv=-1;
    if (n>4)
    {
        for (int i=1; i<=n; i++)
        {
            if (Pitaj(i, (i+1)%n+1, (i+2)%n+1)!=0 && Pitaj(i, (i+3)%n+1, (i+4)%n+1)!=0)
            {
                piv=i;
                break;
            }
        }
    }
    else
    {
        for (int i=1; i<=4; i++)
        {
            for (int j=i+1; j<=4; j++)
            {
                for (int k=j+1; k<=4; k++)
                {
                    if (Pitaj(i, j, k)==0)
                    {
                        for (int l=1; l<=4; l++)
                        {
                            if (l!=i && l!=j && l!=k)
                            {
                                 piv=l;
                                 break;
                            }
                        }
                        break;
                    }
                }
            }
        }
    }
    ans.push_back(piv);
    vector <vector <bool>> mat(n+1, vector <bool> (n+1, false));
    vector <pair<int, int>> visi(n+1);
    for (int i=1; i<=n; i++) {visi[i].first=0; visi[i].second=i;}
    for (int i=1; i<=n; i++)
    {
        for (int j=1; j<i; j++)
        {
            if (mat[i][j]) visi[i].first++;
        }
        for (int j=i+1; j<=n; j++)
        {
            if (Pitaj(piv, i, j)==-1)
            {
                mat[i][j]=true; mat[j][i]=false;
                visi[i].first++;
            }
            else
            {
                mat[i][j]=false; mat[j][i]=true;
            }
        }
    }
    sort(visi.rbegin(), visi.rend());
    for (auto i: visi) ans.push_back(i.second);
    return ans;
}