#include <bits/stdc++.h>
using namespace std;
const long long inf = 0x3f3f3f3f3f3f3f3f;
const int MOD = 1e9 + 7;
const int maxn = 1e4 + 10;
const int maxv = 1e3 + 10;
const double eps = 1e-9;
long long a[maxn], b[maxn], c[maxn], d[maxn], x[maxn];
long long getdis(int u, int v) {
  if (u < v) return abs(x[u] - x[v]) + d[u] + a[v];
  return abs(x[u] - x[v]) + c[u] + b[v];
}
int nxt[maxn];
int main() {
  int n, s, e;
  scanf("%d%d%d", &n, &s, &e);
  for (int i = 1; i <= n; i++) scanf("%lld", x + i);
  for (int i = 1; i <= n; i++) scanf("%lld", a + i);
  for (int i = 1; i <= n; i++) scanf("%lld", b + i);
  for (int i = 1; i <= n; i++) scanf("%lld", c + i);
  for (int i = 1; i <= n; i++) scanf("%lld", d + i);
  long long sum = getdis(s, e);
  nxt[s] = e;
  for (int i = 1; i <= n; i++) {
    if (i == s || i == e) continue;
    long long res = inf, np;
    for (int pos = s; pos != e; pos = nxt[pos]) {
      long long dis =
          getdis(pos, i) + getdis(i, nxt[pos]) - getdis(pos, nxt[pos]);
      if (dis < res) {
        res = dis;
        np = pos;
      }
    }
    sum += res;
    nxt[i] = nxt[np];
    nxt[np] = i;
  }
  printf("%lld\n", sum);
  return 0;
}
