//#include <iostream>
#include <algorithm>
#include <fstream>
using namespace std;
ifstream cin("distincte.in");
ofstream cout("distincte.out");
bool ms(pair<int,pair<int,int> > a,pair<int,pair<int,int> > b){
return a.second.first<b.second.first;
}
pair<int,pair<int,int> > query[100005];
int v[100005];
int f[100005];
int aib[100005],n,k,m,ans[100005];
void upd(int a,int val){
for(;a<=n;a+=(a&(-a))){
aib[a]+=val;
}
}
int que(int a){
int sol=0;
for(;a>=1;a-=(a&-a)){
sol+=aib[a];
}
return sol;
}
int main()
{
cin>>n>>k>>m;
for(int i=1;i<=n;i++){
cin>>v[i];
}
for(int i=1;i<=m;i++){
cin>>query[i].first>>query[i].second.first;
query[i].second.second=i;
}
sort(query+1,query+m+1,ms);
int cnt=1;
for(int i=1;i<=n;i++){
if(f[v[i]]==0){
f[v[i]]=i;
upd(i,v[i]);
}
else{
upd(f[v[i]],-v[i]);
f[v[i]]=i;
upd(i,v[i]);
}
while(query[cnt].second.first==i and cnt<=m){
ans[query[cnt].second.second]=que(query[cnt].second.first)-que(query[cnt].first-1);
cnt++;
}
}
for(int i=1;i<=m;i++){
cout<<ans[i]<<" ";
}
return 0;
}