#include <bits/stdc++.h>
using namespace std;
const long long maxN = 5010;
const long long INF = 1000000000000000;
long long N, S, E;
long long x[maxN], a[maxN], b[maxN], c[maxN], d[maxN], nxt[maxN];
void input() {
  cin >> N >> S >> E;
  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];
}
long long getCost(long long i, long long j) {
  if (i < j) return x[j] - x[i] + d[i] + a[j];
  return x[i] - x[j] + c[i] + b[j];
}
void solve() {
  long long ans = getCost(S, E);
  nxt[S] = E;
  long long min_value, min_id, consider;
  for (long long i = 1; i <= N; i++) {
    if (i == S || i == E) continue;
    min_value = INF, min_id = -1;
    for (long long at = S; at != E; at = nxt[at]) {
      consider = getCost(at, i) + getCost(i, nxt[at]) - getCost(at, nxt[at]);
      if (consider < min_value) {
        min_value = consider;
        min_id = at;
      }
    }
    ans += min_value;
    nxt[i] = nxt[min_id];
    nxt[min_id] = i;
  }
  cout << ans;
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  input();
  solve();
  return 0;
}
