#include <bits/stdc++.h>
using namespace std;
const long long inff = 0x3f3f3f3f3f3f3f3f;
long long n, s, e, a[5008], b[5008], c[5008], d[5008], x[5008], ans, qw;
list<int> li;
long long cost(long long i, long long j) {
  long long ans = abs(x[i] - x[j]);
  if (j < i)
    ans += c[i] + b[j];
  else
    ans += d[i] + a[j];
  return ans;
}
int main() {
  cin.tie(0);
  cout.tie(0);
  cin >> 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]);
  li.push_back(s);
  li.push_back(e);
  ans = cost(s, e);
  for (int i(1); i <= (n); ++i) {
    if (i == s || i == e) continue;
    qw = inff;
    auto qwe = li.end();
    for (auto it = li.begin(); it != li.end(); it++) {
      auto zz = it;
      zz++;
      if (zz == li.end()) break;
      if (cost(*it, i) + cost(i, *zz) - cost(*it, *zz) < qw) {
        qw = cost(*it, i) + cost(i, *zz) - cost(*it, *zz);
        qwe = it;
      }
    }
    ans += qw;
    qwe++;
    li.insert(qwe, i);
  }
  cout << ans << endl;
  return 0;
}
