import std; void main () { int N, K; readln.read(N, K); auto A = readln.split.to!(int[]); auto B = readln.split.to!(int[]); auto C = readln.split.to!(int[]); // なんか見たことあるな... // 最初N本タレでトッピングするとして、K本塩に乗り換えるという貪欲で解ける。 long ans = 0; foreach (v; A) ans += v; foreach (v; C) ans += v; auto D = new int[](N); foreach (i; 0..N) D[i] = B[i] - C[i]; D.sort; foreach (i; 0..K) { ans += D[N - i - 1]; } writeln(ans); } void read (T...) (string S, ref T args) { import std.conv : to; import std.array : split; auto buf = S.split; foreach (i, ref arg; args) { arg = buf[i].to!(typeof(arg)); } }