#include <bits/stdc++.h>
using namespace std;
const int maxn = 100010;
int n, m, q, tot, L, R, x;
long long a[maxn], b[maxn], sa, p[maxn];
long long find(int l, int r) {
  long long res = 1e16;
  while (l < r - 1) {
    int mid = l + r >> 1;
    if (p[mid] + sa < 0)
      l = mid;
    else
      r = mid;
  }
  for (int i = max(l - 3, 1); i <= min(r + 3, tot); ++i) {
    res = min(res, abs(p[i] + sa));
  }
  return res;
}
int main() {
  cin >> n >> m >> q;
  for (int i = 1; i <= n; ++i) {
    scanf("%lld", &a[i]);
    if (i & 1)
      sa += a[i];
    else
      sa -= a[i];
  }
  for (int i = 1; i <= m; ++i) {
    scanf("%lld", &b[i]);
  }
  for (int i = 1; i <= n; ++i) {
    if (i & 1)
      p[1] -= b[i];
    else
      p[1] += b[i];
  }
  for (int i = 1; i <= m - n; ++i) {
    p[i + 1] = p[i] + b[i];
    p[i + 1] = -p[i + 1];
    if (n & 1)
      p[i + 1] -= b[i + n];
    else
      p[i + 1] += b[i + n];
  }
  tot = m - n + 1;
  sort(p + 1, p + tot + 1);
  printf("%lld\n", find(1, tot));
  for (int i = 1; i <= q; ++i) {
    scanf("%d%d%d", &L, &R, &x);
    if (L & 1) {
      if (R & 1) sa += x;
    } else {
      if (!(R & 1)) sa -= x;
    }
    printf("%lld\n", find(1, tot));
  }
  return 0;
}
