#include <bits/stdc++.h>
using namespace std;
template <typename T>
inline const T read1() {
  T m = 0;
  char k = getchar();
  while (('0' > k || k > '9') && (k != '-')) k = getchar();
  const bool f = (k == '-' ? 1 : 0);
  if (f) k = getchar();
  while ('0' <= k && k <= '9')
    m = (m << 3) + (m << 1) + (k ^ 48), k = getchar();
  return f ? -m : m;
}
int n, m, q, b[100001];
set<long long> w;
long long sa, sb;
long long Find(long long x) {
  set<long long>::iterator i = w.lower_bound(x);
  if (i != w.end()) {
    long long t = *i;
    if (i != w.begin()) return min(t - x, x - *--i);
    return t - x;
  }
  return x - *--i;
}
int main() {
  n = read1<int>(), m = read1<int>(), q = read1<int>();
  for (int i = 1, w = 1; i <= n; ++i, w = -w) sa += read1<int>() * w;
  for (int i = 1, w = 1; i <= m; ++i, w = -w)
    b[i] = read1<int>(), i <= n && (sb += b[i] * w);
  w.insert(sb);
  for (int i = n + 1, o = n & 1 ? 1 : -1; i <= m; ++i)
    sb = -sb, w.insert(sb += b[i - n] + b[i] * o);
  printf("%lld\n", Find(sa));
  for (int i = 1; i <= q; ++i) {
    int l = read1<int>(), r = read1<int>(), v = read1<int>();
    if ((l ^ ~r) & 1) sa += l & 1 ? v : -v;
    printf("%lld\n", Find(sa));
  }
  return 0;
}
