#include <bits/stdc++.h>
using namespace std;
const int MAXN = 2e5 + 5;
long long n, x[5005], a[5005], b[5005], c[5005], d[5005];
long long s, e;
long long v[5005];
long long ans;
long long NEXT[5005];
long long dis(long long m, long long n) {
  if (x[m] > x[n]) return x[m] - x[n] + c[m] + b[n];
  return x[n] - x[m] + d[m] + a[n];
}
int main() {
  cin >> n >> s >> e;
  for (long long i = 1; i <= n; i++) cin >> x[i];
  for (long long i = 1; i <= n; i++) cin >> a[i];
  for (long long i = 1; i <= n; i++) cin >> b[i];
  for (long long i = 1; i <= n; i++) cin >> c[i];
  for (long long i = 1; i <= n; i++) cin >> d[i];
  ans = dis(s, e);
  NEXT[s] = e;
  for (long long i = 1; i <= n; i++) {
    if (i == s || i == e) continue;
    long long maxm = 1e18, best;
    for (long long j = s; j != e; j = NEXT[j]) {
      long long k = dis(j, i) + dis(i, NEXT[j]) - dis(j, NEXT[j]);
      if (k < maxm) {
        maxm = k;
        best = j;
      }
    }
    ans += maxm;
    NEXT[i] = NEXT[best];
    NEXT[best] = i;
  }
  cout << ans;
}
