#include<stdio.h>
#include<algorithm>

using namespace std;

int partition(int array[], int p, int r) {
  int x = array[r];
  int i = p - 1;
  for(int j = p; j < r; j++) {
    if(array[j] <= x) {
      i++;
      swap(array[i], array[j]);
    }
  }
  swap(array[i + 1], array[r]);
  
  return i + 1;
}


int main(void) {
  int n;
  int array[100000];

  scanf("%d", &n);
  for(int i = 0; i < n; i++) {
    scanf("%d", &array[i]);
  }

  int index = partition(array, 0, n - 1);

  for(int i = 0; i < n; i++) {
    if(i > 0) {
      printf(" ");
    }


    if(i == index) {
      printf("[%d]", array[i]);
    }
    else {
      printf("%d", array[i]);
    }
  }
  printf("\n");
  return 0;
}
#include<bits/stdc++.h>
using namespace std;

#define rep(i,n) for(int i=0;i<(n);i++)
#define pb push_back
#define all(v) (v).begin(),(v).end()
typedef vector<int>vint;
typedef pair<int,int>pint;


signed main(){
    int N,p[100]={0},r[100];

    cin>>N;
    rep(i,N*(N-1)/2){
        int a,b,c,d;
        cin>>a>>b>>c>>d;
        a--;b--;
        if(c>d)p[a]+=3;
        else if(c<d)p[b]+=3;
        else{
            p[a]++;p[b]++;
        }
    }

    vector<pint>vec(N);
    rep(i,N)vec[i]=pint(p[i],i);
    sort(all(vec));reverse(all(vec));

    int tmp=0;
    rep(i,N){
        if(i&&vec[i-1].first!=vec[i].first)tmp=i;
        r[vec[i].second]=tmp;
    }

    rep(i,N)cout<<r[i]+1<<endl;
    return 0;
}