#include <bits/stdc++.h>
using namespace std;
long long a[5555], b[5555], c[5555], d[5555], x[5555], s, t, n;
long long f[2][5555];
void myMin(long long &x, long long y) {
  if (x > y) {
    x = y;
  }
}
int main() {
  cin >> n >> s >> t;
  ;
  for (int i = 1; i <= n; ++i) cin >> x[i];
  for (int i = 1; i <= n; ++i) cin >> a[i];
  for (int i = 1; i <= n; ++i) cin >> b[i];
  for (int i = 1; i <= n; ++i) cin >> c[i];
  for (int i = 1; i <= n; ++i) cin >> d[i];
  memset(f, 0x60, sizeof(f));
  long long inf = f[0][0];
  f[0][0] = 0;
  int od = 0, nw = 1;
  for (int i = 1; i <= n; ++i) {
    f[nw][0] = inf;
    for (int j = 1; j <= i; ++j) {
      f[nw][j] = inf;
      if (i == s) {
        myMin(f[nw][j], f[od][j - 1] - x[i] + d[i]);
        if (i < t) {
          myMin(f[nw][j], f[od][j] + x[i] + c[i]);
        } else {
          if (j > 1 || i == n) {
            myMin(f[nw][j], f[od][j] + x[i] + c[i]);
          }
        }
      } else if (i == t) {
        myMin(f[nw][j], f[od][j - 1] - x[i] + b[i]);
        if (i < s) {
          myMin(f[nw][j], f[od][j] + x[i] + a[i]);
        } else {
          if (j > 1 || i == n) {
            myMin(f[nw][j], f[od][j] + x[i] + a[i]);
          }
        }
      } else {
        if (j > 1 || i < t) {
          myMin(f[nw][j], f[od][j] + a[i] + d[i]);
        }
        if (j > 1 || i < s) {
          myMin(f[nw][j], f[od][j] + b[i] + c[i]);
        }
        myMin(f[nw][j], f[od][j - 1] - 2 * x[i] + b[i] + d[i]);
        if (j > 1 || i == n || i < s || i < t)
          myMin(f[nw][j], f[od][j + 1] + 2 * x[i] + a[i] + c[i]);
      }
    }
    nw = 1 - nw;
    od = 1 - od;
  }
  cout << f[od][1] << endl;
  return 0;
}
