#include<bits/stdc++.h>
#include<algorithm>
using namespace std;
#define mp make_pair
long long int arr[200005],query[1000005],memo[200005];
class node
{
public:vector< pair<long long int,pair<long long int,long long int> > >link;
};
#define vppi pair<long long int,pair<long long int,long long int> >
node dp[600];
inline long long int readInt (void)
{
bool minus = false;
long long int result = 0;
char ch;
ch = getchar();
while (true) {
if (ch == '-') break;
if (ch >= '0' && ch <= '9') break;
ch = getchar();
}
if (ch == '-') minus = true; else result = ch-'0';
while (true) {
ch = getchar();
if (ch < '0' || ch > '9') break;
result = result*10 + (ch - '0');
}
if (minus)
return -result;
else
return result;
}
inline void add(long long int i,long long int *answer)
{
query[arr[i]]++;
*(answer)=(*answer)+( arr[i]*( (2*query[arr[i]])-1 ) );
}
inline void remove(long long int i,long long int *answer)
{
//if(query[arr[i]]>0)
query[arr[i]]--;
(*answer)=(*answer)-( ( (2*query[arr[i]])+1)*arr[i] );
}
inline bool compare3( vppi a,vppi b)
{
return a.second.second<b.second.second;
}
int main()
{
long long int t,n,q,i,j,k,sq,a,b,m;
n=readInt();
m=readInt();
for(i=0;i<n;i++) arr[i]= readInt();
sq=ceil( (double)sqrt(n) );
//scanint(m);
t=m;
j=0;
while(t--)
{
a=readInt();
b=readInt();
i=(a-1)/sq;
dp[i].link.push_back(mp(j,mp(a-1,b-1)));
j++;
}
for(i=0;i<sq;i++)
{
j=dp[i].link.size();
if(j!=0) sort(dp[i].link.begin(),dp[i].link.end(),compare3);
}
memset(query,0,sizeof(query));
long long int ans=0;
long long int currentL=0,currentR=0,L,R;
for(i=0;i<=sq;i++)
{
j=dp[i].link.size();
for(k=0;k<j;k++)
{
L=dp[i].link[k].second.first;
R=dp[i].link[k].second.second;
while( currentL <L)
{
remove(currentL,&ans);
currentL++;
}
while( currentL >L)
{
add(currentL-1,&ans);
currentL--;
}
while( currentR <=R)
{
add(currentR,&ans);
currentR++;
}
while( currentR >R+1)
{
remove(currentR-1,&ans);
currentR--;
}
memo[dp[i].link[k].first]=ans;
}
}
for(i=0;i<m;i++)
{
printf("%I64d\n",memo[i]);
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2luY2x1ZGU8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojZGVmaW5lIG1wIG1ha2VfcGFpcgpsb25nIGxvbmcgaW50IGFyclsyMDAwMDVdLHF1ZXJ5WzEwMDAwMDVdLG1lbW9bMjAwMDA1XTsKY2xhc3Mgbm9kZQp7CglwdWJsaWM6dmVjdG9yPCBwYWlyPGxvbmcgbG9uZyBpbnQscGFpcjxsb25nIGxvbmcgaW50LGxvbmcgbG9uZyBpbnQ+ID4gPmxpbms7Cn07CgojZGVmaW5lIHZwcGkgcGFpcjxsb25nIGxvbmcgaW50LHBhaXI8bG9uZyBsb25nIGludCxsb25nIGxvbmcgaW50PiA+Cm5vZGUgZHBbNjAwXTsKCmlubGluZSBsb25nIGxvbmcgaW50IHJlYWRJbnQgKHZvaWQpIAp7CgkKCQoJYm9vbCBtaW51cyA9IGZhbHNlOwoJbG9uZyBsb25nIGludCByZXN1bHQgPSAwOwoJY2hhciBjaDsKCWNoID0gZ2V0Y2hhcigpOwoJd2hpbGUgKHRydWUpIHsKCQlpZiAoY2ggPT0gJy0nKSBicmVhazsKCQlpZiAoY2ggPj0gJzAnICYmIGNoIDw9ICc5JykgYnJlYWs7CgkJY2ggPSBnZXRjaGFyKCk7Cgl9CglpZiAoY2ggPT0gJy0nKSBtaW51cyA9IHRydWU7IGVsc2UgcmVzdWx0ID0gY2gtJzAnOwoJd2hpbGUgKHRydWUpIHsKCQljaCA9IGdldGNoYXIoKTsKCQlpZiAoY2ggPCAnMCcgfHwgY2ggPiAnOScpIGJyZWFrOwoJCXJlc3VsdCA9IHJlc3VsdCoxMCArIChjaCAtICcwJyk7Cgl9CglpZiAobWludXMpCgkJcmV0dXJuIC1yZXN1bHQ7CgllbHNlCgkJcmV0dXJuIHJlc3VsdDsKCQkKCQkKCQkKfQoKaW5saW5lIHZvaWQgYWRkKGxvbmcgbG9uZyBpbnQgaSxsb25nIGxvbmcgaW50ICphbnN3ZXIpCnsKICAgIHF1ZXJ5W2FycltpXV0rKzsKICAgICooYW5zd2VyKT0oKmFuc3dlcikrKCBhcnJbaV0qKCAoMipxdWVyeVthcnJbaV1dKS0xICkgKTsKICAgIAp9CgppbmxpbmUgdm9pZCByZW1vdmUobG9uZyBsb25nIGludCBpLGxvbmcgbG9uZyBpbnQgKmFuc3dlcikKewogICAgLy9pZihxdWVyeVthcnJbaV1dPjApCiAgICAKICAgIHF1ZXJ5W2FycltpXV0tLTsKICAgIAoJKCphbnN3ZXIpPSgqYW5zd2VyKS0oICggKDIqcXVlcnlbYXJyW2ldXSkrMSkqYXJyW2ldICApOwoJICAKCn0KCmlubGluZSBib29sIGNvbXBhcmUzKCB2cHBpIGEsdnBwaSBiKQp7CglyZXR1cm4gYS5zZWNvbmQuc2Vjb25kPGIuc2Vjb25kLnNlY29uZDsKfQoKaW50IG1haW4oKQp7Cglsb25nIGxvbmcgaW50IHQsbixxLGksaixrLHNxLGEsYixtOwoJbj1yZWFkSW50KCk7CgltPXJlYWRJbnQoKTsKCWZvcihpPTA7aTxuO2krKykgIGFycltpXT0gcmVhZEludCgpOwoJc3E9Y2VpbCggKGRvdWJsZSlzcXJ0KG4pICk7CgkvL3NjYW5pbnQobSk7Cgl0PW07CglqPTA7Cgl3aGlsZSh0LS0pCgl7IAoJICAgCgkgICAJYT1yZWFkSW50KCk7CgkgICAJYj1yZWFkSW50KCk7CgkJaT0oYS0xKS9zcTsKCSAgICBkcFtpXS5saW5rLnB1c2hfYmFjayhtcChqLG1wKGEtMSxiLTEpKSk7CgkJaisrOwoJCQkKCX0KCQoJZm9yKGk9MDtpPHNxO2krKykKCXsKCQlqPWRwW2ldLmxpbmsuc2l6ZSgpOwoJCWlmKGohPTApIHNvcnQoZHBbaV0ubGluay5iZWdpbigpLGRwW2ldLmxpbmsuZW5kKCksY29tcGFyZTMpOwoJfQoJCgltZW1zZXQocXVlcnksMCxzaXplb2YocXVlcnkpKTsKCQoJbG9uZyBsb25nIGludCBhbnM9MDsKCQoJCglsb25nIGxvbmcgaW50IGN1cnJlbnRMPTAsY3VycmVudFI9MCxMLFI7Cglmb3IoaT0wO2k8PXNxO2krKykKCXsKCQlqPWRwW2ldLmxpbmsuc2l6ZSgpOwoJCWZvcihrPTA7azxqO2srKykKCSAgICB7CgkgICAgCQoJICAgIAlMPWRwW2ldLmxpbmtba10uc2Vjb25kLmZpcnN0OwoJICAgIAlSPWRwW2ldLmxpbmtba10uc2Vjb25kLnNlY29uZDsKCSAgICAgICAgd2hpbGUoIGN1cnJlbnRMIDxMKSAKCQkgICAgewoJCSAgICAgICAgcmVtb3ZlKGN1cnJlbnRMLCZhbnMpOwogICAgICAgICAgICAgICAgY3VycmVudEwrKzsKICAgICAgICAgICAgfQogICAgCgkgICAgICAgIHdoaWxlKCBjdXJyZW50TCA+TCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgYWRkKGN1cnJlbnRMLTEsJmFucyk7CiAgICAgICAgICAgICAgICBjdXJyZW50TC0tOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHdoaWxlKCBjdXJyZW50UiA8PVIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgYWRkKGN1cnJlbnRSLCZhbnMpOwogICAgICAgICAgICAgICBjdXJyZW50UisrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHdoaWxlKCBjdXJyZW50UiA+UisxKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZW1vdmUoY3VycmVudFItMSwmYW5zKTsKICAgICAgICAgICAgICAgIGN1cnJlbnRSLS07CQoJCSAgICB9CgkJCgkJICAgIG1lbW9bZHBbaV0ubGlua1trXS5maXJzdF09YW5zOwoJCSAgICAKCSAgICB9CgkgICAgCgl9CgkKCWZvcihpPTA7aTxtO2krKykgCgl7CgkJcHJpbnRmKCIlSTY0ZFxuIixtZW1vW2ldKTsKCX0KfQ==