      program perms
      implicit integer (a-h,o-z)
      parameter(n=1024,m=32768)
c      parameter(n=32768,m=1024)
c      parameter(n=1048576,m=32)
      parameter(a=4*33+1,b=4*49+1)
      dimension p(0:n-1)
      do 10 i=0,n-1
   10 p(i)=i
      s=0
      do 30 k2=0,m-1
        i=0
        j=mod(k2,n)
        do 20 k1=0,n-1
          i=i*a+1
          i=mod(i,n)
          j=j*b+1
          j=mod(j,n)
          x=p(i)
          p(i)=p(j)
          p(j)=x
   20   continue
   30 continue   
      e=0
      do 50 i=0,n-2
   50 if(p(i).le.p(i+1)) e=e+1
      write(6,'(5i10)') n,m,a,b,e
      write(6,'(7i10)') (p(l),l=0,6)
      end
