#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 22;
int n, m;
vector<long long> vec;
long long a[N], b[N];
long long ask(long long x) {
  int id = lower_bound(vec.begin(), vec.end(), x) - vec.begin(), id2 = id - 1;
  if (id2 == -1) return abs(vec[id] - x);
  if (id == vec.size()) return abs(vec[id2] - x);
  return min(abs(vec[id] - x), abs(vec[id2] - x));
}
int main() {
  ios::sync_with_stdio(false);
  long long x = 0, y = 0, q;
  cin >> n >> m >> q;
  for (int i = 0; i < (n); i++) {
    cin >> a[i];
    if (i % 2)
      x -= a[i];
    else
      x += a[i];
  }
  for (int i = 0; i < (m); i++) {
    cin >> b[i];
    if (i % 2 && i < n)
      y -= b[i];
    else if (i % 2 == 0 && i < n)
      y += b[i];
  }
  long long sw = 1;
  for (int i = 0; i <= m - n; i++) {
    vec.push_back(x - y * sw);
    if (i == m - n) break;
    if (i % 2)
      y += b[i];
    else
      y -= b[i];
    if ((i + n) % 2)
      y -= b[i + n];
    else
      y += b[i + n];
    sw *= -1;
  }
  sort(vec.begin(), vec.end());
  cout << ask(0) << endl;
  x = 0;
  while (q--) {
    long long l, r, val;
    cin >> l >> r >> val;
    l--, r--;
    if ((r - l + 1) % 2 == 1) {
      if (l % 2)
        x += val;
      else
        x -= val;
    }
    cout << ask(x) << endl;
  }
  return 0;
}
