#include <bits/stdc++.h>
using namespace std;
vector<int> a, b;
vector<long long> sum2;
long long sum = 0;
void update_sum(int l, int r, int x) {
  if ((r - l) % 2 == 1) return;
  if (l % 2)
    sum += x;
  else
    sum -= x;
}
long long query() {
  auto it = lower_bound(sum2.begin(), sum2.end(), sum);
  long long case1 = 1e16;
  long long case2 = 1e16;
  if (it == sum2.end()) it--;
  case1 = abs((*it) - sum);
  if (it != sum2.begin()) it--;
  case2 = abs((*it) - sum);
  return min(case1, case2);
}
int main() {
  int n, m, q;
  cin >> n >> m >> q;
  a.resize(n);
  b.resize(m);
  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 / 2; i++) {
    sum += a[i * 2];
    sum -= a[i * 2 + 1];
  }
  if (n % 2) sum += a[n - 1];
  long long init = 0;
  for (int i = 0; i < n / 2; i++) {
    init += b[i * 2];
    init -= b[i * 2 + 1];
  }
  if (n % 2) init += b[n - 1];
  sum2.push_back(init);
  for (int start = 1; start <= m - n; start++) {
    init -= b[start - 1];
    if (n % 2)
      init -= b[start + n - 1];
    else
      init += b[start + n - 1];
    init *= -1;
    sum2.push_back(init);
  }
  sort(sum2.begin(), sum2.end());
  cout << query() << '\n';
  for (int i = 0; i < q; i++) {
    int l, r, x;
    cin >> l >> r >> x;
    update_sum(l, r, x);
    cout << query() << '\n';
  }
}
