#include <bits/stdc++.h>
using namespace std;
long long f[5010][5010], x[5010], c[5010], d[5010], a[5010], b[5010];
int n, m, s, t;
int main() {
  scanf("%d %d %d", &n, &s, &t);
  for (int i = 1; i <= n; i++) scanf("%I64d", &x[i]);
  for (int i = 1; i <= n; i++) scanf("%I64d", &a[i]);
  for (int i = 1; i <= n; i++) scanf("%I64d", &b[i]);
  for (int i = 1; i <= n; i++) scanf("%I64d", &c[i]);
  for (int i = 1; i <= n; i++) scanf("%I64d", &d[i]);
  for (int i = 0; i <= n; i++)
    for (int j = 0; j <= n; j++) f[i][j] = 1LL << 60;
  f[0][0] = 0;
  for (int i = 1; i <= n; i++) {
    if (i != s && i != t) {
      for (int j = 0; j <= n; j++) {
        int k;
        if ((i > s && i > t) || (i < s && i < t))
          k = 0;
        else
          k = s < t ? 1 : -1;
        k += j;
        if ((j > 1 || (j > 0 && i == n)) || (k > 1 || (k > 0 && i == n)))
          f[i][j - 1] =
              min(f[i][j - 1], f[i - 1][j] + x[i] * 2LL + c[i] + a[i]);
        if (j > 0) f[i][j] = min(f[i][j], f[i - 1][j] + c[i] + b[i]);
        f[i][j + 1] = min(f[i][j + 1], f[i - 1][j] - x[i] * 2LL + d[i] + b[i]);
        if (k > 0) f[i][j] = min(f[i][j], f[i - 1][j] + d[i] + a[i]);
      }
    } else if (i == s) {
      for (int j = 0; j <= n; j++) {
        int k = s < t ? 0 : -1;
        k += j;
        if ((j > 0 && (k > 0 || i == n)) || j > 1)
          f[i][j - 1] = min(f[i][j - 1], f[i - 1][j] + x[i] + c[i]);
        f[i][j] = min(f[i][j], f[i - 1][j] - x[i] + d[i]);
      }
    } else {
      for (int j = 0; j <= n; j++) {
        int k = s < t ? 1 : 0;
        k += j;
        if ((k > 0 && (j > 0 || i == n)) || k > 1)
          f[i][j] = min(f[i][j], f[i - 1][j] + x[i] + a[i]);
        f[i][j + 1] = min(f[i][j + 1], f[i - 1][j] - x[i] + b[i]);
      }
    }
  }
  printf("%I64d\n", f[n][0]);
  return 0;
}
