#include <bits/stdc++.h>
using namespace std;
const int MAXN = 5010;
long long f[MAXN][MAXN];
int x[MAXN], a[MAXN], b[MAXN], c[MAXN], d[MAXN];
int main() {
  int n, s, e;
  cin >> 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]);
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j++) {
      f[i][j] = abs(x[i] - x[j]);
      if (j < i) {
        f[i][j] += c[i] + b[j];
      } else if (j > i) {
        f[i][j] += d[i] + a[j];
      }
    }
  }
  bool vis[MAXN];
  memset(vis, false, sizeof(vis));
  vis[s] = vis[e] = true;
  list<int> l;
  l.push_back(s);
  l.push_back(e);
  long long ans = f[s][e];
  int cnt = 0;
  for (int i = n; i >= 1; i--) {
    if (i != s && i != e) {
      cnt++;
      auto pos = l.begin();
      auto last = l.begin();
      auto cur = l.begin();
      cur++;
      long long mmin = -1llu >> 1;
      for (int j = 1; j <= cnt; j++) {
        long long cost = ans + f[*last][i] + f[i][*cur] - f[*last][*cur];
        if (cost < mmin) {
          mmin = cost;
          pos = cur;
        }
        last++;
        cur++;
      }
      ans = mmin;
      l.insert(pos, i);
    }
  }
  cout << ans << endl;
  return 0;
}
