#include<stdio.h>
#include<algorithm>
using namespace std;
double dp[1<<15][15];
int rev[1<<15][15];
int ans[20];
int b[20];
int c[20];
int d[20];
int ABS(int a){
	return max(a,-a);
}
int main(){
	int a;
	scanf("%d",&a);
	for(int i=0;i<a;i++)scanf("%d%d%d",b+i,c+i,d+i);
	for(int i=0;i<(1<<a);i++)for(int j=0;j<a;j++)dp[i][j]=99999999999.99;
	for(int i=0;i<a;i++)dp[1<<i][i]=0;
	for(int i=0;i<(1<<a);i++){
		int w=0;
		for(int j=0;j<a;j++)if(i&(1<<j))w+=20*d[j];
		for(int j=0;j<a;j++){
			for(int k=0;k<a;k++){
				if(i&(1<<k))continue;
				double t=dp[i][j]+(70.0+w)*(double)ABS(c[j]-c[k])/2000;
				if(t<dp[i+(1<<k)][k]){
					dp[i+(1<<k)][k]=t;
					rev[i+(1<<k)][k]=j;
				}
			}
		}
	}
	int now=0;
	for(int i=1;i<a;i++)if(dp[(1<<a)-1][now]>dp[(1<<a)-1][i])now=i;
	int at=(1<<a)-1;
	int ind=a-1;
	while(at){
		ans[ind]=now;
		int to=rev[at][now];
		at-=(1<<now);
		now=to;
		ind--;
	}
	for(int i=0;i<a;i++){
		if(i)printf(" ");
		printf("%d",b[ans[i]]);
	}
	printf("\n");
}