#define r228 (1<<28)
__device__ int myrandom(int max, int rn, long rx[])
{
rn = (rn%55) + 1;
rx[rn-1] = (rx[rn-1] + rx[(rn+30)%55])%r228;
return rx[rn-1]*max/r228;
}
__device__ void myseed(int n, int rn, long rx[])
{
int i;
rn = 1;
rx[0] = n%r228;
for(i = 2 ; i <= 55 ; i++)rx[i-1]=(1664525*rx[i-2]+1)%r228;
for(i = 1 ; i < 100 ; i++){
rn = (rn%55) + 1;
rx[rn-1] = (rx[rn-1]+rx[(rn+30)%55])%r228;
}
}