#include <bits/stdc++.h>
using namespace std;
int n, S, T;
long long D[5050][5050];
int i, x[5050], a[5050], b[5050], c[5050], d[5050];
bool B[5050][5050];
long long depe(long long aa, long long bb) {
  if (bb < 0) return 1e18;
  if (aa == (n + 1) && bb == 1) return 0;
  if (aa == (n + 1)) return 1e18;
  long long ret = B[aa][bb];
  if (ret) return D[aa][bb];
  B[aa][bb] = 1;
  long long ujg = 0, ujg1 = 0, ujg2 = 0;
  if (aa > S) ujg++;
  if (aa > S) ujg1++;
  if (aa > T) ujg++;
  if (aa > T) ujg2++;
  ret = 1e18;
  if (aa == S) {
    ret = min(ret, depe(aa + 1, bb + 1) + d[aa] - x[aa]);
    if (bb > 0) ret = min(ret, depe(aa + 1, bb) + c[aa] + x[aa]);
  } else if (aa == T) {
    ret = min(ret, depe(aa + 1, bb + 1) + b[aa] - x[aa]);
    if (bb > 0) ret = min(ret, depe(aa + 1, bb) + a[aa] + x[aa]);
  } else {
    if ((bb + 1 - ujg) > 0)
      ret = min(ret, depe(aa + 1, bb + 1) + b[aa] + d[aa] - x[aa] - x[aa]);
    if (bb > 1)
      ret = min(ret, depe(aa + 1, bb - 1) + a[aa] + c[aa] + x[aa] + x[aa]);
    if ((bb - ujg2) > 0) ret = min(ret, depe(aa + 1, bb) + a[aa] + d[aa]);
    if ((bb - ujg1) > 0) ret = min(ret, depe(aa + 1, bb) + b[aa] + c[aa]);
  }
  return D[aa][bb] = ret;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n >> S >> T;
  for (i = 1; i <= n; i++) cin >> x[i];
  for (i = 1; i <= n; i++) cin >> a[i];
  for (i = 1; i <= n; i++) cin >> b[i];
  for (i = 1; i <= n; i++) cin >> c[i];
  for (i = 1; i <= n; i++) cin >> d[i];
  cout << depe(1, 0) << "\n";
}
