#include <bits/stdc++.h>
#define INF 1e9
#define f first
#define s second
using namespace std;
typedef pair <int,int> P;
typedef pair <double,P> PP;
PP in[20],dp[1<<15][20];
double get_time(double a,double b,double w){return abs(a-b)/(2000/(70+20*w));}

int main(){
  int n;
  cin>>n;
  for(int i=0;i<n;i++)cin>>in[i].f>>in[i].s.f>>in[i].s.s;

  for(int i=0;i<(1<<15);i++)
    for(int j=0;j<15;j++)dp[i][j]=PP(INF,P(INF,INF));


  for(int i=0;i<n;i++)dp[1<<i][i]=PP(0,P(in[i].s.s,INF));

  for(int i=0;i<(1<<n);i++)
    for(int j=0;j<n;j++) // prev
      for(int k=0;k<n&&(i&(1<<j));k++){ // next
	if((i&(1<<k)))continue;
	int ni=i|(1<<k);
	double nt=dp[i][j].f+get_time(in[j].s.f,in[k].s.f,dp[i][j].s.f);
	int nw=dp[i][j].s.f+in[k].s.s;
	dp[ni][k]=min(dp[ni][k],PP(nt,P(nw,j)));
      }
  
  int ans[16],bit=(1<<n)-1;
  PP mn=dp[bit][0];
  for(int i=1;i<n;i++) if(mn>dp[bit][i]) mn=dp[bit][i],ans[n-1]=i;
  for(int i=n-2;i>=0;i--){
    bit-=(1<<ans[i+1]);
    ans[i]=mn.s.s;
    mn=dp[bit][mn.s.s];
  }
  for(int i=0;i<n-1;i++) cout << in[ans[i]].f<<" ";
  cout <<in[ans[n-1]].f<<endl;
  return 0;
}