#include <bits/stdc++.h>
using namespace std;
long long n, m, q;
long long b[100000 + 1];
long long suma;
long long sums;
long long sum[100000 + 1];
long long sign(long long i) { return ((i & 1) ? 1 : (-1)); }
inline long long poz(long long a) { return (a > 0 ? a : (-a)); }
void readFile() {
  scanf("%lld%lld%lld", &n, &m, &q);
  long long i, nr;
  for (i = 1; i <= n; i++) {
    scanf("%lld", &nr);
    suma += nr * sign(i);
  }
  long long sumb = 0;
  long long cr = 1;
  for (i = 1; i <= m; i++) {
    scanf("%lld", &b[i]);
    if (i > n) {
      sumb -= (-b[i - n]);
      sumb = (-sumb);
    }
    if (i <= n) cr = (-cr);
    sumb += cr * b[i];
    if (i >= n) sum[++sums] = sumb;
  }
}
long long elem(long long i) {
  if (i >= 1 && i <= sums) return sum[i];
  return sum[1];
}
void printRez() {
  long long i = 0;
  long long pas = (1 << 16);
  long long caut = -suma;
  while (pas != 0) {
    if (i + pas <= sums && sum[i + pas] <= caut) i += pas;
    pas >>= 1;
  }
  printf("%lld\n", min(min(poz(suma + elem(i)), poz(suma + elem(i + 1))),
                       poz(suma + elem(i - 1))));
}
void ansQues() {
  sort(sum + 1, sum + sums + 1);
  printRez();
  while (q > 0) {
    q--;
    long long st, dr, nr;
    scanf("%lld%lld%lld", &st, &dr, &nr);
    long long mns = (dr >> 1) - ((st - 1) >> 1);
    long long pls = (dr - st + 1) - mns;
    suma += 1LL * pls * nr;
    suma -= 1LL * mns * nr;
    printRez();
  }
}
int main() {
  readFile();
  ansQues();
  return 0;
}
