using System;
using System.Collections;
namespace plazma {
     
class PLAZ {
     
    public static void Main()
    {
        string[] data1 = Console.ReadLine().Split(" ");
        long N = long.Parse(data1[0]);
        long Q = long.Parse(data1[1]);
        long[] d = new long[N];
        long[] p = new long[N];
        long[] k = new long[Q];
        for (int i = 0; i < N; i++){
            string[] data2 = Console.ReadLine().Split(" ");
            d[i] = long.Parse(data2[0]);
            p[i] = long.Parse(data2[1]);
        }
        for (int j = 0; j < Q; j++){
            string data2 = Console.ReadLine();
            k[j] = long.Parse(data2);
        }
        long ukupnoP = 0;
        long razdk = 0;
        long rezultat = 0;
        long ostatak = 0;

        for (int j = 0; j < Q; j++){
          for (int i = 0; i < N; i++){
              if(d[i] < k[j]){
                  if(ostatak != 0){
                    rezultat += ostatak;
                    ostatak = 0;
                    ukupnoP = 0;
                  }
                  else{
                    ukupnoP = 0;
                    ukupnoP += p[i];
                  }
                  razdk = k[j] - d[i] + 1;
                  if(razdk>ukupnoP){
                    if(rezultat == ukupnoP){
                      rezultat += 0;
                    }
                    else{
                      rezultat += ukupnoP;
                    }
                  }
                  else{
                    rezultat += razdk;
                    ostatak = ukupnoP - razdk;
                  }
              }
              else{
                  Console.WriteLine(rezultat);
                  break;
              }
          }
        }
        Console.WriteLine(rezultat);
    }
}
}