#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e5 + 20, maxm = 1e6 + 20;
int n, t, sq = 450, ar[maxm], a[maxn];
long long sum, ans[maxn];
struct trio {
  int l, r, andis;
} q[maxn];
bool comp(trio a, trio b) {
  if (a.l / sq < b.l / sq)
    return 1;
  else if (a.l / sq == b.l / sq) {
    if (a.r < b.r)
      return 1;
    else if (a.r == b.r && a.l < b.l)
      return 1;
  }
  return 0;
}
void add(int i) {
  sum += 1ll * (ar[i] * 2 + 1) * i;
  ar[i]++;
}
void mi(int i) {
  sum += 1ll * (-2 * ar[i] + 1) * i;
  ar[i]--;
}
int main() {
  ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  cin >> n >> t;
  for (int i = 1; i <= n; i++) cin >> a[i];
  for (int i = 1; i <= t; i++) {
    cin >> q[i].l >> q[i].r;
    q[i].andis = i;
  }
  sort(q + 1, q + t + 1, comp);
  int l = 1, r = 0;
  for (int i = 1; i <= t; i++) {
    while (r < q[i].r) add(a[++r]);
    while (l < q[i].l) mi(a[l++]);
    while (l > q[i].l) add(a[--l]);
    while (r > q[i].r) mi(a[r--]);
    ans[q[i].andis] = sum;
  }
  for (int i = 1; i <= t; i++) cout << ans[i] << '\n';
}
