#include<deque>
#include<list>
#include<map>
#include<queue>
#include<set>
#include<stack>
#include<vector>
#include<algorithm>
#include<string>
#include<iostream>
#include<sstream>
#include<cmath>
#include<cstring>
using namespace std;
int a[15],b[15],c[15],d[15],e[15],f[15][1<<15],n;
double mn=1<<30;
void fn(int p,int q,int r,int s,double t){
  int i;
  if(p==n){
    if(mn>t){
      mn=t;
      memcpy(e,d,sizeof(d));
    }
  }else{
    if(f[r][q]>t){
      f[r][q]=t;
      for(i=0;i<n;i++){
	if((q&(1<<i))==0){
	  d[p]=a[i];
	  fn(p+1,q|(1<<i),i,s+c[i],t+fabs(b[r]-b[i])*(70+s)/2000); 
	}
      }
    }
  }
  return;
}
int main(){
  int i,j;
  cin>>n;
  for(i=0;i<n;i++){
    cin>>a[i]>>b[i]>>c[i];
    c[i]*=20;
  }
  for(i=0;i<n;i++)
    for(j=0;j<(1<<n);j++)
      f[i][j]=1<<30;
  for(i=0;i<n;i++){
    d[0]=a[i];
    fn(1,1<<i,i,c[i],0);
  }
  for(i=0;i<n-1;i++)
    cout<<e[i]<<" ";
  cout<<e[i]<<endl;
  return 0;
}