#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e5 + 10;
long long v[MAXN];
set<long long> st;
long long sa;
long long solve() {
  long long ans = 1e16;
  auto it = st.lower_bound(-sa);
  if (it != st.end()) ans = min(ans, abs(sa + *it));
  if (it != st.begin()) {
    ans = min(ans, abs(sa + *prev(it)));
  }
  return ans;
}
int main() {
  int n, m, q;
  scanf(" %d %d", &(n), &(m));
  scanf(" %d", &(q));
  for (int i = 0; i < (n); ++i) {
    long long x;
    scanf(" %lld", &x);
    sa += x * (i & 1 ? -1 : 1);
  }
  long long sb = 0;
  for (int i = 0; i < (m); ++i) {
    long long x;
    scanf(" %lld", &x);
    v[i] = x;
    sb += x * (i & 1 ? -1 : 1);
    if (i >= n - 1) {
      int idx = i - n + 1;
      int sign = (idx & 1) ? 1 : -1;
      st.insert(sb * sign);
      sb -= (idx & 1 ? -1 : 1) * v[idx];
    }
  }
  printf("%lld\n", solve());
  for (int i = 0; i < (q); ++i) {
    int l, r;
    long long x;
    scanf(" %d %d", &(l), &(r));
    scanf(" %lld", &x);
    int sz = r - l + 1;
    long long p1 = ((sz / 2) + sz % 2) * x;
    long long p2 = ((sz / 2)) * x;
    sa += (l & 1 ? 1 : -1) * p1 + (l & 1 ? -1 : 1) * p2;
    printf("%lld\n", solve());
  }
  return 0;
}
