#include <bits/stdc++.h>
using namespace std;
const int N = 100001;
int n, m, q, a[N], b[N];
long long mn, mx;
long long dp[2][N + 3];
vector<long long> all;
long long calc(long long s) {
  auto it = lower_bound(all.begin(), all.end(), -s);
  if (it != all.begin()) --it;
  long long res = 1e18;
  for (int i = 0; i < 2 && it != all.end(); ++i) {
    res = min(res, abs(s + *it));
    ++it;
  }
  return res;
}
int main() {
  scanf("%d%d%d", &n, &m, &q);
  long long s = 0;
  for (int i = 0; i < n; ++i) {
    scanf("%d", a + i);
    if (i % 2 == 1)
      s -= a[i];
    else
      s += a[i];
  }
  for (int i = 0; i < m; ++i) scanf("%d", b + i);
  long long mn = 1e18, mx = -1e18;
  for (int i = m - 1; i >= 0; --i) {
    dp[0][i] = dp[1][i + 1] + b[i];
    dp[1][i] = dp[0][i + 1] - b[i];
    if (i + n <= m) {
      long long cur = dp[1][i];
      if (n % 2 == 0)
        cur += dp[0][i + n];
      else
        cur -= dp[0][i + n];
      all.push_back(cur);
      mn = min(mn, cur);
      mx = max(mx, cur);
    }
  }
  sort(all.begin(), all.end());
  int l, r, val;
  {
    long long A = s + mn;
    long long B = s + mx;
    if (A < 0) A = -A;
    if (B < 0) B = -B;
    printf("%lld\n", calc(s));
  }
  while (q--) {
    scanf("%d %d %d", &l, &r, &val);
    int len = r - l + 1;
    long long neg = len / 2;
    long long pos = len - neg;
    if (l % 2 == 0) swap(neg, pos);
    s -= val * (long long)neg;
    s += val * (long long)pos;
    long long A = s + mn;
    long long B = s + mx;
    if (A < 0) A = -A;
    if (B < 0) B = -B;
    printf("%lld\n", calc(s));
  }
  return 0;
}
