#include <bits/stdc++.h>
using namespace std;
const int Maxn = 5050;
const long long INF = 0x3f3f3f3f3f3f3f3fLL;
long long x[Maxn], a[Maxn], b[Maxn], c[Maxn], d[Maxn];
long long f[2][Maxn][2][2];
void Upd(long long &x, long long y) {
  if (x > y) x = y;
}
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]);
  memset(f, 0x3f, sizeof f);
  if (s == 1)
    f[0][0][0][1] = -x[1] + d[1];
  else if (e == 1)
    f[0][0][1][0] = -x[1] + b[1];
  else
    f[0][0][1][1] = -2 * x[1] + d[1] + b[1];
  for (int i = 2; i <= n; ++i) {
    for (int j = 0; j <= i; ++j)
      for (int k = 0; k <= 1; ++k)
        for (int l = 0; l <= 1; ++l)
          if (f[0][j][k][l] < INF) {
            long long val = f[0][j][k][l];
            if (i == s) {
              assert(k);
              Upd(f[1][j][0][l], val + x[i] + c[i]);
              Upd(f[1][j + 1][0][l], val - x[i] + d[i]);
            } else if (i == e) {
              assert(l);
              Upd(f[1][j][k][0], val + x[i] + a[i]);
              Upd(f[1][j + 1][k][0], val - x[i] + b[i]);
            } else {
              if (j) {
                Upd(f[1][j + 1][k][l], val - 2 * x[i] + d[i] + b[i]);
                Upd(f[1][j - 1][k][l], val + 2 * x[i] + a[i] + c[i]);
                Upd(f[1][j][k][l], val + a[i] + d[i]);
                Upd(f[1][j][k][l], val + b[i] + c[i]);
              }
              if (k) {
                Upd(f[1][j + 1][k][l], val - 2 * x[i] + d[i] + b[i]);
                Upd(f[1][j][k][l], val + c[i] + b[i]);
              }
              if (l) {
                Upd(f[1][j + 1][k][l], val - 2 * x[i] + d[i] + b[i]);
                Upd(f[1][j][k][l], val + a[i] + d[i]);
              }
            }
          }
    for (int j = 0; j <= n; ++j)
      for (int k = 0; k <= 1; ++k)
        for (int l = 0; l <= 1; ++l)
          f[0][j][k][l] = f[1][j][k][l], f[1][j][k][l] = INF;
  }
  printf("%lld\n", f[0][0][0][0]);
}
