#include <bits/stdc++.h>
using namespace std;
const int N = 5005;
const int M = N * 28;
int a[N], b[N], c[N], d[N], nxt[N], x[N];
int n, s, e;
long long dis(int u, int v) {
  if (u > v) return (long long)abs(x[u] - x[v]) + c[u] + b[v];
  return (long long)abs(x[u] - x[v]) + d[u] + a[v];
}
int main() {
  scanf("%d%d%d", &n, &s, &e);
  for (int i = 1; i <= n; i++) scanf("%d", &x[i]);
  for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
  for (int i = 1; i <= n; i++) scanf("%d", &b[i]);
  for (int i = 1; i <= n; i++) scanf("%d", &c[i]);
  for (int i = 1; i <= n; i++) scanf("%d", &d[i]);
  long long ans = dis(s, e);
  nxt[s] = e;
  for (int i = 1; i <= n; i++)
    if (i != s && i != e) {
      long long mi = 1e18;
      int best;
      for (int u = s; u != e; u = nxt[u]) {
        long long dif = dis(u, i) + dis(i, nxt[u]) - dis(u, nxt[u]);
        if (dif < mi) {
          mi = dif;
          best = u;
        }
      }
      ans += mi;
      nxt[i] = nxt[best];
      nxt[best] = i;
    }
  cout << ans << endl;
  return 0;
}
