import Control.Monad
import Control.Monad.ST
import Data.List
import qualified Data.ByteString.Char8 as B
import Data.Array.Unboxed
import Data.Array.ST

main=do
  (n:m:q:_)<-map read.words<$>getLine::IO[Int]
  lrs<-replicateM m $ unfoldr(B.readInt.B.dropWhile(==' '))<$>B.getLine::IO[[Int]]
  pqs<-replicateM q $ unfoldr(B.readInt.B.dropWhile(==' '))<$>B.getLine::IO[[Int]]
  --
  putStr.unlines $ map (show.g (f n lrs)) pqs
--
f n lrs = runSTUArray $ do
  ar <- newArray ((0,0),(n,n)) 0 :: ST s (STUArray s (Int,Int) Int)
  forM_ lrs $ \(l:r:_) -> do
    forM_ [r..n] $ \rr -> do
      writeArray ar (l,rr) =<< (+1) <$> readArray ar (l,rr)
  pure ar
--
g :: UArray (Int,Int) Int -> [Int] -> Int
g ar (p:q:_) = sum $ map (\l-> ar !(l,q) - ar!(l,p-1)) [p..q]