#include <bits/stdc++.h>
typedef long long LL;
const double INF = 1e100;
const int oo = ~0u >> 2;
const double pi = acos(-1.0);
const double EPS = 1e-8;
const int MAXN = 100033;
int n, m, q;
int a[MAXN], b[MAXN];
int l, r, x;
inline int sign(int x) {
  if (x & 1) return -1;
  return 1;
}
LL absLL(LL x) {
  if (x > 0) return x;
  return -x;
}
std::set<LL> S;
LL ans(LL x) {
  std::set<LL>::iterator it = S.lower_bound(x);
  if (it == S.end()) --it;
  LL res = absLL((*it) - x);
  if (it != S.begin()) --it;
  return std::min(res, absLL((*it) - x));
}
LL sa, cur;
int main() {
  scanf("%d%d%d", &n, &m, &q);
  for (int i = (1), __ = (n); i <= __; ++i) {
    scanf("%d", a + i);
    sa += (a[i]) * sign(i - 1);
  }
  for (int i = (1), __ = (n); i <= __; ++i) {
    scanf("%d", b + i);
    cur += sign(i) * b[i];
  }
  S.insert(cur);
  for (int i = (n + 1), __ = (m); i <= __; ++i) {
    scanf("%d", b + i);
    cur += b[i - n];
    cur = -cur;
    cur += sign(n) * b[i];
    S.insert(cur);
  }
  printf(
      "%lld"
      "\n",
      ans(-sa));
  for (int i = (0), __ = (q); i < __; ++i) {
    scanf("%d%d%d", &l, &r, &x);
    if (!(r - l & 1)) {
      if (l & 1)
        sa += x;
      else
        sa -= x;
    }
    printf(
        "%lld"
        "\n",
        ans(-sa));
  }
  return 0;
}
