#include <bits/stdc++.h>
using namespace std;
int N, M, Q;
vector<int> A, B;
set<long long> st;
inline int sign(int val) { return val & 1 ? -1 : 1; }
long long solve(long long val) {
  auto it = st.lower_bound(val);
  if (it == st.end()) --it;
  long long res = abs(*it - val);
  if (it != st.begin()) --it;
  return min(res, abs(*it - val));
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  cin >> N >> M >> Q;
  A.resize(N), B.resize(M);
  long long c = 0;
  for (int i = 0; i < N; i++) {
    cin >> A[i];
    c += A[i] * sign(i);
  }
  long long curr = 0;
  for (int i = 0; i < N; i++) {
    cin >> B[i];
    curr += B[i] * sign(i + 1);
  }
  st.insert(curr);
  for (int i = N; i < M; i++) {
    cin >> B[i];
    curr += B[i - N];
    curr *= -1;
    curr += B[i] * sign(N);
    st.insert(curr);
  }
  cout << solve(-c) << "\n";
  while (Q--) {
    int l, r, v;
    cin >> l >> r >> v;
    if ((r - l + 1) & 1) {
      if (l & 1)
        c += v;
      else
        c -= v;
    }
    cout << solve(-c) << "\n";
  }
  return 0;
}
