#include <bits/stdc++.h>
using namespace std;
const long long int INF = (long long int)1e18;
const double EPS = (long double)1e-7;
long long int dp[5005][5005];
int a[5005], b[5005], c[5005], d[5005], x[5005];
int n, st, e;
bool bb;
long long int f(long long int p, long long int open) {
  int i = p;
  long long int& s = dp[p][open / 2];
  if (p == n + 1) {
    if (open)
      return INF;
    else
      return 0;
  }
  if (open <= 0 && p != 1) return INF;
  if (s != -1) return s;
  s = INF;
  if (p == st) {
    s = min(s, f(p + 1, open + 1) + d[i]);
    if (open) s = min(s, f(p + 1, open - 1) + c[i]);
  } else if (p == e) {
    s = min(s, f(p + 1, open + 1) + b[i]);
    if (open) s = min(s, f(p + 1, open - 1) + a[i]);
  } else {
    s = min(s, f(p + 1, open + 2) + b[i] + d[i]);
    if (open) s = min(s, f(p + 1, open - 2) + a[i] + c[i]);
    if (open > 1) {
      if (open) s = min(s, f(p + 1, open) + a[i] + d[i]);
      if (open) s = min(s, f(p + 1, open) + b[i] + c[i]);
    } else {
      if (bb)
        s = min(s, f(p + 1, open) + a[i] + d[i]);
      else
        s = min(s, f(p + 1, open) + b[i] + c[i]);
    }
  }
  s += open * (x[p] - x[p - 1]);
  return s;
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  cin >> n >> st >> e;
  for (int i = (1); i < (int)(n + 2); ++i) {
    for (int j = (0); j < (int)(5004); ++j) dp[i][j] = -1;
  }
  x[0] = x[1];
  bb = st < e;
  for (int i = (1); i < (int)(n + 1); ++i) cin >> x[i];
  for (int i = (1); i < (int)(n + 1); ++i) cin >> a[i];
  for (int i = (1); i < (int)(n + 1); ++i) cin >> b[i];
  for (int i = (1); i < (int)(n + 1); ++i) cin >> c[i];
  for (int i = (1); i < (int)(n + 1); ++i) cin >> d[i];
  cout << f(1, 0) << endl;
  return 0;
}
