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

readInt = fst . fromJust . BS.readInt
readIntList = map readInt . BS.words
getInt = readInt <$> BS.getLine
getIntList = readIntList <$> BS.getLine


main = do
    [n,m,q] <- getIntList
    lr <- replicateM m $ do
        [l,r] <- getIntList
        return (l,r)
    pq <- replicateM q $ do
        [p,q] <- getIntList
        return (p,q)
    let result = runSTUArray $ do
            arr <- newArray ((1,1),(n,n)) (0 :: Int)
            forM_ lr $ \(l,r) -> do
                forM_ [1..l] $ \x -> do
                    a <- readArray arr (x,r)
                    writeArray arr (x,r) $ a + 1
            forM_ [1..n-1] $ \x -> do
                forM_ [x+1..n] $ \y -> do
                    a <- readArray arr (x,y-1)
                    b <- readArray arr (x,y)
                    writeArray arr (x,y) $ a + b
            return arr
    forM_ pq $ \(p,q) -> do
        print $ result ! (p,q)