#include <bits/stdc++.h>
using namespace std;
int n, m, q;
int a[110000], b[110000];
long long all;
long long now;
set<long long> S;
set<long long>::iterator it;
int flag;
long long ask(long long x) {
  it = S.lower_bound(-x);
  long long res = 1e18;
  if (it != S.end()) res = min(res, abs((*it) + x));
  if (it != S.begin()) {
    it--;
    res = min(res, abs((*it) + x));
  }
  return res;
}
int main() {
  scanf("%d %d %d", &n, &m, &q);
  for (int i = 1; i <= n; i++) {
    scanf("%d", &a[i]);
    if (i & 1)
      all += (long long)a[i];
    else
      all -= (long long)a[i];
  }
  if (n & 1) flag = 1;
  for (int i = 1; i <= m; i++) scanf("%d", &b[i]);
  for (int i = 1; i <= n; i++)
    if (i & 1)
      now -= b[i];
    else
      now += (long long)b[i];
  for (int i = 0; i <= m - n; i++) {
    S.insert(all + now);
    now += (long long)b[i + 1];
    now = -now;
    if (flag)
      now -= (long long)b[n + i + 1];
    else
      now += (long long)b[n + i + 1];
  }
  now = 0;
  cout << ask(0) << endl;
  while (q--) {
    int l, r, x;
    scanf("%d %d %d", &l, &r, &x);
    int dd = r - l + 1, na, nb;
    if (l & 1) {
      na = (dd + 1) / 2;
      nb = dd / 2;
    } else {
      na = dd / 2;
      nb = (dd + 1) / 2;
    }
    now += (long long)na * (long long)x;
    now -= (long long)nb * (long long)x;
    cout << ask(now) << endl;
  }
  return 0;
}
