#include<bits/stdc++.h>
using namespace std;
const int N=5e4+7;
const int SQ=300;
int n,m,c[N],ans[N],ans2[N];
array<int,3> e[N];
int gcd(int x,int y){
if(x==0) return y;
else return gcd(y%x,x);
}
int main(){
cin >> n >> m;
for(int i=1;i<=n;i++){
cin >> c[i];
}
for(int i=1;i<=m;i++){
int l,r;
cin >> l >> r;
e[i]={l,r,i};
ans2[i]=(r-l)*(r-l+1)/2;
}
sort(e+1,e+m+1,[&](array<int,3> a,array<int,3> b){
if(a[0]/SQ!=b[0]/SQ){
return (bool)((a[0]/SQ)<(b[0]/SQ));
}else{
return (bool)(a[1]<b[1]);
}
});
for(int i=1;i<n;i+=SQ){
int sum=0,tot=i;
int cnt[N];
memset(cnt,0,sizeof(cnt));
for(int j=i;j<=n;j++){
sum+=cnt[c[j]];
cnt[c[j]]++;
while(1){
int to2=tot;
if(j==e[tot][1]){
int lasd=i;
for(;lasd!=e[tot][0];lasd++);
int sum2=sum;
for(int k=i;k<lasd;k++){
--cnt[c[k]];
sum2-=cnt[c[k]];
}
ans[e[tot][2]]=sum2;
tot++;
for(int k=i;k<lasd;k++){
++cnt[c[k]];
}
}
if(to2==tot) break;
}
}
}
for(int i=1;i<=m;i++){
if(ans[i]==0){
cout << "0/1\n";
}else{
int d=gcd(ans[i],ans2[i]);
cout << ans[i]/d << '/' << ans2[i]/d << '\n';
}
}
return 0;
}