#include <bits/stdc++.h>
using namespace std;
const long long N = 5005, INF = 0x3f3f3f3f3f3f3f3f;
long long dp[N][N], x[N], a[N], b[N], c[N], d[N], nxt[N];
long long n, s, t;
long long dis(long long i, long long j) {
  return abs(x[i] - x[j]) + (i < j ? d[i] + a[j] : c[i] + b[j]);
}
int main() {
  while (~scanf("%lld%lld%lld", &n, &s, &t)) {
    for (long long i = 1; i <= n; i++) scanf("%lld", &x[i]);
    for (long long i = 1; i <= n; i++) scanf("%lld", &a[i]);
    for (long long i = 1; i <= n; i++) scanf("%lld", &b[i]);
    for (long long i = 1; i <= n; i++) scanf("%lld", &c[i]);
    for (long long i = 1; i <= n; i++) scanf("%lld", &d[i]);
    nxt[s] = t;
    long long ans = dis(s, t);
    for (long long i = 1; i <= n; i++) {
      if (i == s || i == t) continue;
      long long l = INF, p;
      for (long long j = s; j != t; j = nxt[j]) {
        long long k = dis(j, i) + dis(i, nxt[j]) - dis(j, nxt[j]);
        if (k < l) l = k, p = j;
      }
      ans += l;
      nxt[i] = nxt[p];
      nxt[p] = i;
    }
    printf("%lld\n", ans);
  }
  return 0;
}
