using System;
using System.Collections.Generic;
using System.Linq;

class Program
{
    static public int n;
    static public List<int>[] to;
    static public int[] ans;
    static void Main()
    {
        string[] In = Console.ReadLine().Split(' ');
        n = int.Parse(In[0]);
        int q = int.Parse(In[1]);
        to= new List<int>[200005];
        ans = new int[n];
        for (int i=0; i < 200005; i++)
        {
            to[i] = new List<int>();
        }
        for(int i=0; i < n-1; i++)
        {
            string[] In2 = Console.ReadLine().Split(' ');
            int a = int.Parse(In2[0]);
            int b = int.Parse(In2[1]);
            a--;b--;
            to[a].Add(b);
            to[b].Add(a);
        }
        for (int i = 0; i < q; i++)
        {
            string[] In3 = Console.ReadLine().Split(' ');
            int p = int.Parse(In3[0]);
            int x = int.Parse(In3[1]);
            p--;
            ans[p] += x;
        }
        DFS(0);
        Console.Write(ans[0]);
        for (int i = 1; i < n; i++)
        {
            Console.Write(" " + ans[i]);
        }
        Console.WriteLine();
    }
    static public void DFS(int v, int p=-1)
    {
        foreach(var u in to[v])
        {
            if (u == p) continue;//親に戻るのはNG
            ans[u] += ans[v];
            DFS(u, v);
        }
    }
}


//TLE
//namespace D
//{
//    class Program
//    {
//        static void Main(string[] args)
//        {
//            string[] In = Console.ReadLine().Split(' ');
//            int n = int.Parse(In[0]);
//            int q = int.Parse(In[1]);
//            var L = new List<int>[n];
//            for (int i = 0; i < n; i++)
//            {
//                L[i] = new List<int>();
//            }
//            for (int i = 0; i < n - 1; i++)
//            {
//                string[] In2 = Console.ReadLine().Split(' ');
//                int a = int.Parse(In2[0]);
//                int b = int.Parse(In2[1]);
//                a--; b--;
//                L[a].Add(b);
//                L[b].Add(a);
//            }
//            var dist = new int[n];
//            dist = Enumerable.Repeat(-1, n).ToArray();
//            var que = new Queue<int>();
//            que.Enqueue(0);
//            int d = 1;
//            dist[0] = 1;
//            while (que.Count != 0)
//            {
//                var v = que.Dequeue();
//                foreach (var x in L[v])
//                {
//                    if (dist[x] == -1)
//                    {
//                        dist[x] = dist[v]+1;
//                        que.Enqueue(x);
//                    }
//                }
//            }
//            var P = new int[n];
//            for (int i = 0; i < q; i++)
//            {
//                string[] In3 = Console.ReadLine().Split(' ');
//                int p = int.Parse(In3[0]);
//                int x = int.Parse(In3[1]);
//                p--;
//                DFS(L, p, P, x,dist);
//            }
//            Console.Write(P[0]);
//            for (int i = 1; i < n; i++)
//            {
//                Console.Write(" " + P[i]);
//            }
//            Console.WriteLine();
//        }
//        static void DFS(List<int>[] L, int index, int[] P, int x, int[] d)
//        {
//            P[index] += x;
//            if (L[index].Count == 0) return;
//            foreach (var l in L[index])
//            {
//                if (d[index] + 1 == d[l])
//                {
//                    DFS(L, l, P, x, d);
//                }
//            }
//        }
//    }
//}
//namespace D
//{
//    class Program
//    {
//        static void Main(string[] args)
//        {
//            string[] In = Console.ReadLine().Split(' ');
//            int n = int.Parse(In[0]);
//            int q = int.Parse(In[1]);
//            var L = new List<int>[n];
//            for (int i = 0; i < n; i++)
//            {
//                L[i] = new List<int>();
//            }
//            for (int i = 0; i < n - 1; i++)
//            {
//                string[] In2 = Console.ReadLine().Split(' ');
//                int a = int.Parse(In2[0]);
//                int b = int.Parse(In2[1]);
//                a--; b--;
//                L[a].Add(b);
//            }
//            var P = new int[n];
//            for (int i = 0; i < q; i++)
//            {
//                string[] In3 = Console.ReadLine().Split(' ');
//                int p = int.Parse(In3[0]);
//                int x = int.Parse(In3[1]);
//                p--;
//                DFS(L, p, P,x);
//            }
//            Console.Write(P[0]);
//            for (int i = 1; i < n; i++)
//            {
//                Console.Write(" " + P[i]);
//            }
//            Console.WriteLine();
//        }
//        static void DFS(List<int>[] L,int index, int[] P, int x)
//        {
//            P[index] += x;
//            if (L[index].Count == 0) return;
//            foreach (var l in L[index])
//            {
//                DFS(L, l, P, x);
//            }
//        }
//    }
//}

//TLE
//namespace D
//{
//    class Program
//    {
//        static void Main(string[] args)
//        {
//            string[] In = Console.ReadLine().Split(' ');
//            int n = int.Parse(In[0]);
//            int q = int.Parse(In[1]);
//            var L = new List<int>[n];
//            for(int i = 0; i < n; i++)
//            {
//                L[i] = new List<int>();
//            }
//            for (int i = 0; i < n-1; i++)
//            {
//                string[] In2 = Console.ReadLine().Split(' ');
//                int a = int.Parse(In2[0]);
//                int b = int.Parse(In2[1]);
//                a--;b--;
//                L[a].Add(b);
//                L[b].Add(a);
//            }
//            var dist = new int[n];
//            dist = Enumerable.Repeat(-1, n).ToArray();
//            var que = new Queue<int>();
//            que.Enqueue(0);
//            int d = 1;
//            dist[0] = 1;
//            while (que.Count != 0)
//            {
//                d++;
//                var v = que.Dequeue();
//                foreach(var x in L[v])
//                {
//                    if (dist[x] == -1)
//                    {
//                        dist[x] = d;
//                        que.Enqueue(x);
//                    }
//                }
//            }
//            var P = new int[n];
//            for (int i = 0; i < q; i++)
//            {
//                string[] In3 = Console.ReadLine().Split(' ');
//                int p = int.Parse(In3[0]);
//                int x = int.Parse(In3[1]);
//                p--;
//                P[p] += x;
//                for (int j = 0; j < n; j++)
//                {
//                    if (dist[j] > dist[p])
//                    {
//                        P[j] += x;
//                    }
//                }
//            }
//            Console.Write(P[0]);
//            for(int i = 1; i < n; i++)
//            {
//                Console.Write(" " + P[i]);
//            }
//            Console.WriteLine();
//        }
//    }
//}


Measured memory_bytes: 79536