#include <bits/stdc++.h>
using namespace std;
const long long N = 5005, inf = 1e18;
long long a[N], b[N], c[N], d[N], x[N], memo[N][N], n, s, t;
void upd(long long &a, long long b) { a = min(a, b); }
long long calc(long long i, long long cc) {
  if (i == n + 1) {
    if (cc == 1)
      return 0;
    else
      return inf;
  }
  if (memo[i][cc] != -inf) return memo[i][cc];
  long long res = inf;
  if (i == s) {
    if (cc > 0) upd(res, calc(i + 1, cc) + x[s] + c[s]);
    upd(res, calc(i + 1, cc + 1) - x[s] + d[s]);
  } else if (i == t) {
    if (cc > 0) upd(res, calc(i + 1, cc) + x[t] + a[t]);
    upd(res, calc(i + 1, cc + 1) - x[t] + b[t]);
  } else {
    bool print = (i == 5 && cc == 2);
    if (cc + 1 - (i > s) - (i > t))
      upd(res, calc(i + 1, cc + 1) - 2 * x[i] + b[i] + d[i]);
    if (cc >= 2) upd(res, calc(i + 1, cc - 1) + 2 * x[i] + a[i] + c[i]);
    if ((cc - (i > s)) > 0) upd(res, calc(i + 1, cc) + b[i] + c[i]);
    if ((cc - (i > t)) > 0) upd(res, calc(i + 1, cc) + a[i] + d[i]);
  }
  return memo[i][cc] = res;
}
signed main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cin >> n >> s >> t;
  for (long long i = 1; i <= n; ++i) cin >> x[i];
  for (long long i = 1; i <= n; ++i) cin >> a[i];
  for (long long i = 1; i <= n; ++i) cin >> b[i];
  for (long long i = 1; i <= n; ++i) cin >> c[i];
  for (long long i = 1; i <= n; ++i) cin >> d[i];
  for (long long i = 1; i <= n + 1; ++i)
    for (long long j = 0; j <= n + 1; ++j) memo[i][j] = -inf;
  cout << calc(1, 0) << '\n';
  return 0;
}
