#include <iostream.h>
unsigned long n,k,i,j;
unsigned long s[100][100],a[2000],used[2000],d[2000];

void Init();
void Katia(int);
void Out();
void main()
{
Init();
Out();
}
void Init()
{
 unsigned long i,p,c,h,l;
 cin>>n>>k;
 for(i=1;i<n;i++)
 { cin>>l>>p>>c;
	s[l-1][p-1]=c; s[p-1][l-1]=c;
 }
 for(i=0;i<k;i++)
 { cin>>h;
	a[i]=h; }
}
void Katia(int x)
{ for(i=0;i<n;i++)
	for(j=0;j<n;j++)
	if(s[i][j]==0)
	s[i][j]=100001;
	unsigned long p=0;
	  for(i=0;i<n;i++)
		for(j=0;j<n;j++)

	  {	  d[p]=s[i][j];p++;}
  used[x]=1;
  unsigned long dj=100001;
  int minj,k1=1;
  while(k1)
  { k1=0; dj=100001;
	 for(j=0;j<n;j++)
	 if(d[j]<dj&&used[j]!=1)
	 { dj=d[j]; minj=j; k1=1;
	 }
	 used[minj]=1;
	 for(j=0;j<n;j++)
	 { if(d[j]>d[minj]+s[j][minj])
		d[j]=d[minj]+s[j][minj];
	 }
  };
  unsigned long h=0;
  for(j=0;j<n;j++)
  { cout<<d[h]<<d[a[h]]<<endl; h++;}
}
void Out()
{

Katia(1);
}
