#include <bits/stdc++.h>
using namespace std;
const int N=5e4+5;
int n,m,c[N],kc,kl[N],kr[N],kg,l,r,w[N],h1;
int a[N];
struct aa
{
int l,r,ans1,ans2,time,k;
}qu[N];
bool cmp1(aa a,aa b)
{
if(a.k==b.k)
{
if(a.k%2==1)
{
if(a.l==b.l)return a.r<b.r;
return a.l<b.l;
}
else
{
if(a.l==b.l)return a.r>b.r;
return a.l>b.l;
}
}
return a.k<b.k;
}
bool cmp2(aa a,aa b)
{
return a.time<b.time;
}
void del()
{
h1-=c[a[l]]*(c[a[l]]-1)/2;
c[a[l]]--;
h1+=c[a[l]]*(c[a[l]]-1)/2;
l++;
}
void der()
{
h1-=c[a[r]]*(c[a[r]]-1)/2;
c[a[r]]--;
h1+=c[a[r]]*(c[a[r]]-1)/2;
r--;
}
void zjl()
{
l--;
h1-=c[a[l]]*(c[a[l]]-1)/2;
c[a[l]]++;
h1+=c[a[l]]*(c[a[l]]-1)/2;
}
void zjr()
{
r++;
h1-=c[a[r]]*(c[a[r]]-1)/2;
c[a[r]]++;
h1+=c[a[r]]*(c[a[r]]-1)/2;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>a[i];
kc=sqrt(n);
for(int i=1;i<=n;i=i+kc+1)
{
kl[++kg]=i;
kr[kg]=min(i+kc,n);
for(int j=kl[kg];j<=kr[kg];j++)w[j]=kg;
}
for(int i=1;i<=m;i++)
{
cin>>qu[i].l>>qu[i].r;
qu[i].time=i;
qu[i].k=w[qu[i].l];
}
sort(qu+1,qu+m+1,cmp1);
l=r=1;
h1=0;
c[a[1]]=1;
for(int i=1;i<=m;i++)
{
while(l<qu[i].l)del();
while(l>qu[i].l)zjl();
while(r<qu[i].r)zjr();
while(r>qu[i].r)der();
qu[i].ans1=h1;
qu[i].ans2=qu[i].r-qu[i].l+1;
}
sort(qu+1,qu+m+1,cmp2);
for(int i=1;i<=m;i++)
{
int x=qu[i].ans1,y=(qu[i].ans2-1)*qu[i].ans2/2;
if(x==0)
{
cout<<"0/1\n";
}
else cout<<x/__gcd(x,y)<<"/"<<y/__gcd(x,y)<<"\n";
}
}