void myfunction(int n,int m,long int*a)
{
if(n>=m)
return;
int left,i,j,right;
long int temp,temp1;
left=n;
right=m;
i=left;
j=right-1;
temp=a[left];
while(i!=j)
{
while(a[j]<temp&&j>i)
{
j--;
}
while(a[i]>temp&&j>i)
{
i++;
}
if(j>i)
{
temp1=a[i];
a[i]=a[j];
a[j]=temp1;
if((j-i)!=1)
{
--j;
++i;
}
else
--j;
}
a[left]=a[i];
a[i]=temp;
myfunction(n,i-1,a);
myfunction(i+1,m,a);
}
{
if(n>=m)
return;
int left,i,j,right;
long int temp,temp1;
left=n;
right=m;
i=left;
j=right-1;
temp=a[left];
while(i!=j)
{
while(a[j]<temp&&j>i)
{
j--;
}
while(a[i]>temp&&j>i)
{
i++;
}
if(j>i)
{
temp1=a[i];
a[i]=a[j];
a[j]=temp1;
if((j-i)!=1)
{
--j;
++i;
}
else
--j;
}
a[left]=a[i];
a[i]=temp;
myfunction(n,i-1,a);
myfunction(i+1,m,a);
}