#include <bits/stdc++.h>
using namespace std;
inline int read() {
  int x = 0, ch;
  while (!isdigit(ch = getchar()))
    ;
  while (isdigit(ch)) x = (x << 1) + (x << 3) + (ch ^ 48), ch = getchar();
  return x;
}
const int MAXN = 5000;
int x[MAXN + 1];
int ia[MAXN + 1];
int ib[MAXN + 1];
int oa[MAXN + 1];
int ob[MAXN + 1];
int To[MAXN + 1];
inline long long Calc(int u, int v) {
  return u < v ? (long long)x[v] - x[u] + ia[v] + ob[u]
               : (long long)x[u] - x[v] + ib[v] + oa[u];
}
int main() {
  int n = read(), s = read(), t = read();
  for (int i = 1; i <= n; i++) x[i] = read();
  for (int i = 1; i <= n; i++) ia[i] = read();
  for (int i = 1; i <= n; i++) ib[i] = read();
  for (int i = 1; i <= n; i++) oa[i] = read();
  for (int i = 1; i <= n; i++) ob[i] = read();
  To[s] = t;
  int tp;
  long long res = Calc(s, t);
  for (int i = 1; i <= n; i++) {
    if (i == s || i == t) continue;
    int p = s;
    long long tmp = 1LL << 62;
    while (p != t) {
      long long det = Calc(p, i) + Calc(i, To[p]) - Calc(p, To[p]);
      if (tmp > det) {
        tp = p;
        tmp = det;
      }
      p = To[p];
    }
    res += tmp;
    To[i] = To[tp];
    To[tp] = i;
  }
  cout << res << endl;
  return 0;
}
