#include <bits/stdc++.h>
using namespace std;
template <typename T>
inline void checkmin(T &a, T b) {
  if (b < a) {
    a = b;
  }
}
template <typename T>
inline void checkmax(T &a, T b) {
  if (b > a) {
    a = b;
  }
}
const int maxn = 5000 + 10;
const long long inf = (long long)1e18;
long long x[maxn], a[maxn], b[maxn], c[maxn], d[maxn];
long long dp[2][maxn][2][2];
int main() {
  int n, s, e;
  cin >> n >> s >> e;
  s--;
  e--;
  for (int i = 0; i < n; ++i) {
    cin >> x[i];
  }
  for (int i = 0; i < n; ++i) {
    cin >> a[i];
  }
  for (int i = 0; i < n; ++i) {
    cin >> b[i];
  }
  for (int i = 0; i < n; ++i) {
    cin >> c[i];
  }
  for (int i = 0; i < n; ++i) {
    cin >> d[i];
  }
  int now = 0;
  int old = 1;
  for (int i = 0; i < 2; ++i) {
    for (int j = 0; j <= n; ++j) {
      for (int k = 0; k < 2; ++k) {
        for (int l = 0; l < 2; ++l) {
          dp[i][j][k][l] = inf;
        }
      }
    }
  }
  dp[now][0][0][0] = 0;
  for (int i = 0; i < n; ++i) {
    now ^= 1;
    old ^= 1;
    for (int j = 0; j <= n; ++j) {
      for (int k = 0; k < 2; ++k) {
        for (int l = 0; l < 2; ++l) {
          dp[now][j][k][l] = inf;
        }
      }
    }
    for (int j = 0; j <= n; ++j) {
      for (int k = 0; k < 2; ++k) {
        for (int l = 0; l < 2; ++l)
          if (i == 0 || j + k + l) {
            if (i == s) {
              if (k == 0) {
                checkmin(dp[now][j][k + 1][l], dp[old][j][k][l] - x[i] + d[i]);
                if (j > 0) {
                  checkmin(dp[now][j - 1][k + 1][l],
                           dp[old][j][k][l] + x[i] + c[i]);
                }
                if (i == n - 1 && l > 0) {
                  checkmin(dp[now][j][k][l - 1],
                           dp[old][j][k][l] + x[i] + c[i]);
                }
              }
            } else if (i == e) {
              if (l == 0) {
                checkmin(dp[now][j][k][l + 1], dp[old][j][k][l] - x[i] + b[i]);
                if (j > 0) {
                  checkmin(dp[now][j - 1][k][l + 1],
                           dp[old][j][k][l] + x[i] + a[i]);
                }
                if (i == n - 1 && k > 0) {
                  checkmin(dp[now][j][k - 1][l],
                           dp[old][j][k][l] + x[i] + a[i]);
                }
              }
            } else {
              checkmin(dp[now][j + 1][k][l],
                       dp[old][j][k][l] - x[i] + d[i] - x[i] + b[i]);
              if (j > 0) {
                checkmin(dp[now][j][k][l],
                         dp[old][j][k][l] - x[i] + d[i] + x[i] + a[i]);
                checkmin(dp[now][j][k][l],
                         dp[old][j][k][l] + x[i] + c[i] - x[i] + b[i]);
              }
              if (k > 0) {
                checkmin(dp[now][j][k][l],
                         dp[old][j][k][l] - x[i] + d[i] + x[i] + a[i]);
              }
              if (l > 0) {
                checkmin(dp[now][j][k][l],
                         dp[old][j][k][l] + x[i] + c[i] - x[i] + b[i]);
              }
              if (j > 1) {
                checkmin(dp[now][j - 1][k][l],
                         dp[old][j][k][l] + x[i] + c[i] + x[i] + a[i]);
              }
              if (j > 0 && k > 0) {
                checkmin(dp[now][j - 1][k][l],
                         dp[old][j][k][l] + x[i] + c[i] + x[i] + a[i]);
              }
              if (j > 0 && l > 0) {
                checkmin(dp[now][j - 1][k][l],
                         dp[old][j][k][l] + x[i] + c[i] + x[i] + a[i]);
              }
              if (i == n - 1 && k > 0 && l > 0) {
                checkmin(dp[now][j][k - 1][l - 1],
                         dp[old][j][k][l] + x[i] + c[i] + x[i] + a[i]);
              }
            }
          }
      }
    }
  }
  cout << dp[now][0][0][0] << endl;
}
