#include <bits/stdc++.h>
using namespace std;
long long N;
vector<long long> x;
vector<bool> used;
long long ans = 0;
long long dfs() {
  for (int i = 0; i < (N - 1); i++) {
    if (!used[i]) {
      used[i] = true;
      int j = i + 1;
      while (!used[j]) j++;
      ans += x[j] - x[i];
      ans %= 1000000007;
      dfs();
      used[i] = false;
    }
  }
}
void solve() {
  cin >> N;
  x.resize(N);
  used.resize(N);
  used[N - 1] = true;
  for (int i = 0; i < (N); i++) cin >> x[i];
  dfs();
  cout << ans << endl;
}
int main() {
  cin.tie(nullptr);
  ios_base::sync_with_stdio(false);
  cout << fixed << setprecision(20);
  solve();
  return 0;
}
