#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 5010;
const long long inf = (1LL << 60);
int n, s, v, e, a[MAX_N], sdkjaskjlasjsak[MAX_N], b[MAX_N], d[MAX_N], c[MAX_N],
    x[MAX_N];
long long ans, mn, cost;
long long getCost(int i, int j) {
  if (i < j)
    return abs(x[i] - x[j]) + 0LL + d[i] + a[j];
  else
    return abs(x[i] - x[j]) + 0LL + c[i] + b[j];
}
int main() {
  scanf("%d%d%d", &n, &s, &e);
  for (int i = 1; i <= n; i++) scanf("%d", &x[i]);
  for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
  for (int i = 1; i <= n; i++) scanf("%d", &b[i]);
  for (int i = 1; i <= n; i++) scanf("%d", &c[i]);
  for (int i = 1; i <= n; i++) scanf("%d", &d[i]);
  sdkjaskjlasjsak[s] = e;
  for (int i = 1; i <= n; i++) {
    if (i != s && i != e) {
      mn = inf;
      v = -1;
      for (int j = s; j != e; j = sdkjaskjlasjsak[j]) {
        cost = getCost(j, i) - getCost(j, sdkjaskjlasjsak[j]) +
               getCost(i, sdkjaskjlasjsak[j]);
        if (cost < mn) {
          mn = cost;
          v = j;
        }
      }
      sdkjaskjlasjsak[i] = sdkjaskjlasjsak[v];
      sdkjaskjlasjsak[v] = i;
    }
  }
  for (int i = s; i != e; i = sdkjaskjlasjsak[i])
    ans += getCost(i, sdkjaskjlasjsak[i]);
  printf("%lld", ans);
  return 0;
}
