function Rand(arg: k1(reference),k2(reference)):var k3←k1,k4←k2k1←k4k3←k3⊕(k3shl23)k2←k3⊕k4⊕(k3shr17)⊕(k4shr26)return k2+k4procedure GetData(none):var x,yread n,A,B,C,x,yfor var i∈[1,n]:ui←Rand(x,y)modA+1vi←Rand(x,y)modB+1wi←Rand(x,y)modC+1ui←A if Rand(x,y)≡0(mod3)vi←B if Rand(x,y)≡0(mod3)wi←C if ui=A and vi=B