import Control.Monad
import Data.Maybe
import qualified Data.ByteString.Char8 as BS
import Data.List
import qualified Data.Vector.Unboxed as VU

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

main = do
    [a, b, m] <- getIntList
    as <- VU.fromList <$> getIntList
    bs <- VU.fromList <$> getIntList
    ds <- replicateM m $ do
        [x, y, c] <- getIntList
        return $ (as VU.! (x - 1)) + (bs VU.! (y - 1)) - c
    print $ min ((VU.minimum as) + (VU.minimum bs)) (minimum ds)