using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ClassLibrary1
{
    public class ListNode
    {
        public int val;
        public ListNode next;
        public ListNode(int x) { val = x; }
    }


    public class Class1
    {
        static int[][] mtx ;
        static List<int>[] tm;
        static int n;
        static int[] results;
        static List<string> cons = new List<string>();
        static void Main(string[] args)
        {
            string[] s1 = Console.ReadLine().Split(' ');
            n = int.Parse(s1[0]);
            int q = int.Parse(s1[1]);

            tm = new List<int>[n+1];
            for(int i=0; i<n+1; i++)
            {
                tm[i] = new List<int>();
            }

            results = new int[n+1];
            mtx = new int[n-1][];
            for (int i=0; i<n-1; i++)
            {
                string[] s2 = Console.ReadLine().Split(' ');
                mtx[i] = new int[2];
                mtx[i][0] = int.Parse(s2[0]);
                mtx[i][1] = int.Parse(s2[1]);
            }

            int[][] score = new int[q][];
            for (int i = 0; i < q; i++)
            { 
                string[] s3 = Console.ReadLine().Split(' ');
                score[i] = new int[2];
                score[i][0] = int.Parse(s3[0]);
                score[i][1] = int.Parse(s3[1]);
            }


            for(int i=0; i<n; i++)
            {
                createTree(i, i);
            }

            for (int i = 0; i < q; i++)
            {
                foreach(int s in tm[score[i][0]])
                {
                    results[s] += score[i][1]; 
                }
                results[score[i][0]] += score[i][1];
            }

            string result = "";
            for (int i = 1; i < n+1; i++)
            {
                if (i != 1) result += " ";
                result += results[i];
            }

            Console.WriteLine(result);
        }

 

        static void createTree(int root, int current)
        {
            for (int i = 0; i < n-1; i++)
            {
                if( mtx[i][0] == current)
                {
                    tm[root].Add(mtx[i][1]);
                    createTree(root, mtx[i][1]);
                }
            }

        }
    }

    class TreeMap
    {
        int vertex;
        List<int> children = new List<int>();
    }
}