import Control.Monad
import Data.Array
import Data.Array.ST

main = do
  [n,m,q] <- (map read . words) <$> getLine
  lr0 <- replicateM m (getLine >>= return . map read . words)
  pq0 <- replicateM q (getLine >>= return . map read . words)
  let lrlist = map (\l -> (head l, head $ tail l)) lr0
  let pqlist = map (\l -> (head l, head $ tail l)) pq0
  let train2dimsum = make_2dim_sumarray $ train_number_array_from n lrlist
  forM_ pqlist (query train2dimsum)

query train2dimsum (p, q) =
  print answer
  where answer =
          train2dimsum!(q,q) -
            if p == 1 then
              0
            else
              train2dimsum!(q,p-1) + train2dimsum!(p-1,q) - train2dimsum!(p-1,p-1)

make_x_sumarray a = retarray
  where retarray = array (bounds a) [((x,y),val x y) | (x,y) <- indices a]
          where val x y = a!(x,y) + if x == 1 then 0 else retarray!(x-1,y)

make_y_sumarray a = retarray
  where retarray = array (bounds a) [((x,y),val x y) | (x,y) <- indices a]
          where val x y = a!(x,y) + if y == 1 then 0 else retarray!(x,y-1)

make_2dim_sumarray a = make_y_sumarray $ make_x_sumarray a

train_number_array_from n lrlist = runSTArray $ do
  tstarray <- newArray ((1,1), (n,n)) 0
  forM_ lrlist (update_train_number_array tstarray)
  return tstarray

update_train_number_array tstarray lr = do
  num <- readArray tstarray lr
  writeArray tstarray lr (num + 1)
