#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;
const double PI = acos(-1.0);
const long long oo = 1e18;
const int N = 1e5 + 5;
int n, m, q, a[N], b[N];
long long va[2], vb[2];
vector<long long> v;
long long go(long long val) {
  auto it = lower_bound(v.begin(), v.end(), val);
  long long ret = oo;
  if (it != v.end()) ret = min(ret, abs(*it - val));
  if (it != v.begin()) {
    it--;
    ret = min(ret, abs(val - *it));
  }
  return ret;
}
int main(void) {
  ios_base::sync_with_stdio(false);
  cin >> n >> m >> q;
  for (int i = 0; i < n; i++) cin >> a[i];
  for (int i = 0; i < m; i++) cin >> b[i];
  for (int i = 0; i < n; i++) va[i % 2] += a[i];
  for (int i = 0; i < n; i++) vb[i % 2] += b[i];
  for (int j = 0; j <= m - n; j++) {
    v.push_back(va[0] - va[1] + vb[1] - vb[0]);
    vb[0] -= b[j];
    int i = j + n;
    vb[n % 2] += b[i];
    swap(vb[0], vb[1]);
  }
  sort(v.begin(), v.end());
  v.resize(unique(v.begin(), v.end()) - v.begin());
  long long offset = 0LL;
  cout << go(-offset) << endl;
  while (q--) {
    int l, r, x;
    cin >> l >> r >> x;
    l--;
    r--;
    if ((r - l + 1) % 2 != 0) {
      if (l % 2 == 0)
        offset += x;
      else
        offset -= x;
    }
    cout << go(-offset) << endl;
  }
  return 0;
}
