
function Main(input) {
  input=input.split("\n");
  if(input[input.length-1]===''){
    input.pop();
  }
  const N=input[0].split(' ')[0]-0;
  const Q=input[0].split(' ')[1]-0;
  
  var connected=new Array(N+1);
  for(var i=1;i<=N;i++){
    connected[i]=[];
  }
  for(var i=1;i<=N-1;i++){
    connected[input[i].split(' ')[0]-0].push(input[i].split(' ')[1]-0);
    connected[input[i].split(' ')[1]-0].push(input[i].split(' ')[0]-0);
  }
  var memo=new Array(N+1);
  for(var i=1;i<=N;i++){
    memo[i]=0;
  }
  for(var i=N;i<N+Q;i++){
    memo[input[i].split(' ')[0]-0]+=input[i].split(' ')[1]-0;
  }
  var answer=new Array(N);
  answer.fill(false);
  var updated=[1];
  var e;
  while(updated.length>0){
    e=updated[0];
    if(e!==1){
      answer[e-1]=answer[connected[e].find(f=>{return answer[f-1]!==false;})-1]+memo[e];
    }else{
      answer[e-1]=memo[e];
    }
    updated=updated.concat(connected[e].filter(f=>{return answer[f-1]===false;}));
    
    updated.shift();
  }
  console.log(answer.join(' '));
      
  
}

//*この行以降は編集しないでください（標準入出力から一度に読み込み、Mainを呼び出します）
Main(require("fs").readFileSync("/dev/stdin", "utf8"));