#![allow(non_snake_case, unused_must_use, unused_imports)]
use std::io::{self, prelude::*};

fn main() {
    let (stdin, stdout) = (io::read_to_string(io::stdin()).unwrap(), io::stdout());
    let (mut stdin, mut buffer) = (stdin.split_whitespace(), io::BufWriter::new(stdout.lock()));
    macro_rules! input {
        ($t: ty, $n: expr) => {
            (0..$n).map(|_| input!($t)).collect::<Vec<_>>()
        };
        ($t: ty) => {
            stdin.next().unwrap().parse::<$t>().unwrap()
        };
    }

    let N = input!(usize);
    let K = input!(usize);
    let A = input!(isize, N);
    let B = input!(isize, N);
    let C = input!(isize, N);

    let mut D = (0..N).map(|i| B[i] - C[i]).collect::<Vec<_>>();
    D.sort();
    D.reverse();

    let ans = A.iter().sum::<isize>() + C.iter().sum::<isize>() + D[0..K].iter().sum::<isize>();
    writeln!(buffer, "{}", ans);
}