Cody

# Problem 797. Genome Sequence 003R: Sequence DNA of random positioned and flipped segments

Solution 1792616

Submitted on 18 Apr 2019
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

### Test Suite

Test Status Code Input and Output
1   Fail
tic L=2000+randi(200); while 1 % Loop until create a Gtruth with no repeated 16 segments Gtruth=randi(4,1,L,'uint8')-1; Gseg=zeros(L-15,16,'uint8'); GtruthR=fliplr(Gtruth); for j=1:L-15 Gseg(j,:)=Gtruth(j:j+15); Gseg(j+L-15,:)=GtruthR(j:j+15); end Gsegv=uint32(Gseg(:,1)); for j=2:16 Gsegv=4*Gsegv+uint32(Gseg(:,j)); end if size(unique(Gsegv),1)==(L-15)*2 break end end % while create valid Gtruth segs=Gtruth(1:48); % First segment is a required segs=[segs;Gtruth(L-47:end)]; % Last Segment is required ptr=1; while 1 ptr=ptr+randi(32); if ptr+48>L,break;end segs=[segs;Gtruth(ptr:ptr+47)]; end v=randperm(size(segs,1)); % Segs Scrambled Over Easy segs(:,:)=segs(v,:); f=logical(randi(2,size(segs,1),1)-1); segs_orig=segs; segs(f,:)=fliplr(segs(f,:)); Gout = Genome_003R(segs); toc assert(isequal(Gout,Gtruth)||isequal(Gout,fliplr(Gtruth))) %assert( isequal(Gout,Gtruth) )

segs = 603×48 uint8 matrix Columns 1 through 45 0 1 2 0 2 0 0 0 0 3 0 3 0 3 3 1 1 0 1 2 1 0 2 0 2 3 0 0 1 1 2 0 3 2 0 1 0 0 1 1 3 2 1 1 0 2 0 0 1 1 2 2 0 0 0 1 2 0 1 2 3 0 1 3 3 0 3 2 1 3 0 1 2 0 2 1 0 2 1 1 0 2 2 0 0 3 0 2 1 0 3 1 3 2 2 2 2 2 3 1 0 3 0 3 2 0 1 0 3 2 1 0 1 3 0 1 3 2 3 2 3 2 0 1 3 2 2 3 0 1 1 1 3 1 3 0 3 1 3 0 1 0 0 2 3 0 0 1 1 2 0 3 1 1 0 2 2 2 2 2 3 2 3 0 1 0 1 0 1 3 2 0 1 3 1 1 1 2 0 1 0 1 1 3 3 0 3 1 2 3 1 1 1 0 1 2 3 1 2 2 2 2 1 0 0 1 3 0 3 1 0 0 3 3 0 1 0 1 0 0 3 0 3 0 3 0 2 0 2 2 2 1 0 1 1 3 2 3 0 0 3 0 2 3 1 1 1 1 2 2 0 0 0 3 0 3 2 1 1 3 0 3 1 2 0 2 1 2 0 3 3 0 1 0 2 2 2 1 0 3 1 0 2 0 0 2 1 0 0 2 1 2 2 0 0 2 2 1 0 3 3 1 1 1 2 1 1 0 1 2 0 0 0 2 0 3 0 0 3 3 1 0 3 2 3 2 3 2 3 0 0 1 1 0 1 3 1 1 3 0 3 1 1 2 3 1 1 1 3 2 3 3 2 1 1 0 3 0 3 2 0 0 1 1 0 1 0 3 3 2 2 3 1 0 1 1 2 1 1 0 2 1 2 1 0 2 0 2 1 2 0 1 1 2 3 2 2 1 0 3 2 3 3 3 2 0 3 2 1 3 2 3 2 3 2 3 0 2 0 1 1 1 2 2 0 2 2 2 2 1 3 2 2 0 1 2 2 3 2 2 3 0 0 3 0 1 0 2 3 3 1 1 2 2 0 2 1 3 0 2 3 0 2 2 0 0 0 0 2 2 3 1 3 2 3 0 2 0 1 1 0 0 2 3 1 0 2 3 1 2 2 2 0 0 1 3 0 2 1 1 2 0 1 1 1 1 1 0 1 0 0 0 3 2 0 3 2 3 1 0 2 1 1 2 3 0 1 2 0 1 2 1 2 0 1 2 1 0 1 1 3 2 2 1 1 3 1 1 1 2 1 1 1 0 1 0 0 1 1 2 0 2 3 2 1 3 3 1 2 0 0 2 2 0 3 0 1 1 0 2 0 3 3 3 1 3 0 3 0 3 2 2 1 2 3 1 3 0 2 1 1 0 0 1 2 2 1 1 1 0 3 2 2 0 2 0 1 0 2 3 0 0 0 3 2 0 3 3 1 2 3 2 0 0 2 0 1 0 3 2 1 2 0 2 2 0 2 3 3 0 2 3 0 0 1 2 2 1 2 0 1 3 3 0 0 0 2 1 1 1 2 3 1 1 2 1 1 0 2 1 2 2 2 3 3 3 0 2 0 2 1 3 2 3 0 2 3 0 1 1 0 2 1 2 1 1 3 1 0 2 0 0 3 0 3 2 1 3 0 3 2 0 3 2 2 2 3 2 0 0 2 2 1 2 3 1 3 1 1 0 2 0 3 2 1 1 2 2 3 2 2 3 1 2 2 2 0 0 3 3 0 1 3 1 3 3 0 1 2 0 0 0 1 1 0 0 2 2 0 3 3 2 0 1 3 1 1 0 3 1 1 3 0 0 2 0 1 3 3 3 0 2 0 1 1 0 3 0 2 2 1 3 3 2 0 1 3 3 2 1 1 0 0 0 1 0 0 2 1 0 0 3 2 3 0 1 3 3 0 1 1 0 3 2 2 1 0 1 3 2 1 1 3 1 2 0 1 2 0 1 2 0 2 2 2 1 0 0 3 2 1 1 3 3 0 3 2 2 1 1 3 0 2 3 2 1 0 3 1 0 1 0 0 1 2 2 3 0 2 2 2 0 0 2 0 1 0 0 3 2 2 1 3 3 2 3 2 2 0 1 1 3 1 1 3 2 0 2 1 0 3 3 0 1 3 3 0 3 1 2 2 3 2 1 3 2 0 1 1 2 2 0 1 2 3 0 1 0 2 1 3 2 3 1 0 2 0 2 0 1 2 1 2 0 2 0 3 1 1 0 0 2 2 2 1 2 2 2 1 3 1 2 0 1 1 3 3 3 1 1 2 3 1 1 2 3 3 0 3 1 0 3 3 2 0 0 3 1 2 3 3 3 2 0 0 2 3 3 3 2 1 0 0 2 0 0 3 2 0 2 2 3 1 1 2 1 0 2 2 2 1 1 2 0 2 1 3 2 2 3 1 0 0 3 2 1 3 2 3 2 3 0 2 2 2 1 0 0 1 2 0 1 2 0 0 2 3 2 2 1 1 2 1 1 1 2 3 2 1 2 1 3 3 0 2 0 0 0 2 1 2 2 3 1 1 0 0 0 0 3 2 0 3 2 2 2 2 3 1 1 0 1 1 2 1 0 3 3 1 3 0 1 3 2 0 0 1 2 3 2 3 3 3 0 1 2 3 3 0 3 1 2 0 2 1 2 3 1 2 1 2 2 2 0 0 3 0 1 2 2 2 0 2 0 2 0 2 2 1 2 2 2 2 0 0 2 1 2 0 2 0 0 2 1 2 3 0 0 3 0 2 3 0 3 0 2 2 1 3 3 0 1 0 3 1 1 0 0 0 1 3 1 2 1 2 0 0 0 2 3 0 3 3 1 1 2 3 1 3 0 1 0 1 1 3 2 2 0 1 3 0 1 3 3 2 0 1 3 3 2 1 1 0 0 0 1 0 0 2 1 0 0 3 2 3 0 1 3 3 0 1 1 0 3 2 2 1 0 1 3 2 1 1 3 1 2 3 0 1 3 0 2 1 1 0 1 3 3 3 2 3 1 3 0 3 0 0 1 2 0 1 0 3 0 3 1 2 1 1 0 3 0 2 2 1 1 0 2 0 2 0 2 2 3 0 0 1 1 3 0 0 0 1 1 1 3 2 0 3 0 2 1 0 3 3 3 1 3 0 2 2 2 2 0 0 3 1 0 0 0 2 1 0 1 2 1 2 2 2 1 2 0 0 2 0 3 1 2 2 3 1 1 1 2 2 1 2 2 0 0 1 3 3 2 3 0 1 0 2 3 2 2 2 1 0 2 1 3 2 0 3 1 1 1 3 0 0 1 0 2 0 3 3 3 2 3 0 0 3 0 3 1 2 3 1 2 1 2 0 0 3 2 1 1 1 1 1 1 0 1 3 2 3 3 3 3 0 0 1 1 2 3 0 1 3 0 2 1 1 0 1 3 3 3 2 3 1 3 0 3 0 0 1 2 0 1 0 3 0 3 1 2 1 1 0 3 0 2 2 1 1 0 3 1 3 1 1 2 3 0 2 3 3 1 1 2 0 1 3 0 1 2 2 1 2 2 2 3 0 0 1 1 1 2 2 0 2 0 1 1 2 2 2 3 3 1 1 2 2 1 0 2 0 1 1 0 0 1 0 3 1 3 3 0 2 0 2 2 0 1 1 3 1 0 3 3 2 1 2 0 0 2 0 2 3 0 0 0 3 0 2 1 3 3 0 2 0 0 3 3 3 2 1 1 2 0 1 1 1 1 0 1 2 3 1 0 0 0 1 2 0 1 2 0 2 3 3 1 2 1 1 1 2 0 3 1 3 1 0 2 1 2 3 3 3 3 1 1 1 2 2 3 2 1 1 0 0 1 2 0 2 0 0 0 0 3 0 3 0 3 3 1 1 0 1 2 1 0 2 0 1 0 3 1 2 1 1 3 1 2 3 3 3 2 2 3 2 2 3 0 3 2 3 2 0 1 2 2 2 2 1 2 2 0 3 3 2 3 1 2 1 1 0 0 1 0 1 3 0 0 1 3 1 0 0 2 2 0 2 3 3 1 0 1 3 0 1 1 3 0 0 2 0 0 2 2 3 0 3 2 3 3 3 3 0 2 0 2 0 0 0 0 0 2 1 3 1 1 3 2 1 1 2 1 2 3 1 3 3 0 2 3 3 3 0 0 2 3 1 2 0 3 1 3 1 2 0 0 1 1 0 1 1 2 1 2 0 1 0 0 0 1 3 3 0 2 3 1 3 1 1 1 3 3 0 1 3 3 2 0 3 1 0 1 2 1 3 3 0 2 0 0 3 3 3 2 1 1 2 0 1 0 2 0 1 1 0 1 1 2 2 3 1 0 1 1 1 2 2 2 3 1 3 3 1 1 3 1 2 1 2 3 1 1 0 0 1 3 0 0 2 1 0 0 2 1 2 1 1 2 2 2 3 0 3 3 3 3 0 0 3 3 0 3 3 1 0 3 1 0 1 3 0 3 1 2 3 2 2 2 3 0 0 1 0 2 3 1 3 3 0 3 2 3 1 3 2 1 1 1 3 1 1 1 3 2 3 3 3 0 3 0 3 1 1 2 3 1 1 2 3 0 3 2 3 2 3 3 3 1 0 3 2 2 3 2 2 2 3 3 0 2 1 2 2 0 3 2 0 0 2 0 3 2 2 3 2 2 0 2 0 3 0 3 1 1 1 2 1 2 2 3 2 2 0 2 0 3 1 0 2 2 2 1 2 2 2 1 3 3 1 2 2 3 0 1 3 0 1 1 3 2 3 0 1 2 3 0 1 2 0 1 1 1 3 2 1 2 3 2 3 2 1 3 1 0 1 3 0 3 1 2 3 2 2 2 3 0 0 1 0 2 3 1 3 3 0 3 0 2 0 0 3 1 3 3 2 1 2 2 3 2 0 2 3 2 2 1 3 1 0 2 2 3 0 1 1 1 2 2 1 0 0 1 1 2 0 3 1 3 2 1 2 2 3 0 3 0 3 3 2 3 3 1 0 0 1 2 0 3 0 2 1 2 3 1 1 2 3 0 0 3 3 0 2 1 0 3 1 1 0 3 1 2 3 0 0 0 2 0 0 0 0 1 3 1 1 2 1 2 3 3 0 3 2 2 3 2 1 1 3 1 2 0 3 1 2 2 1 2 0 0 2 0 0 1 2 0 2 0 2 2 2 1 0 1 1 3 2 3 0 0 3 0 2 3 1 1 1 1 2 2 0 0 0 1 0 3 2 1 2 1 1 2 0 0 2 1 3 1 3 1 0 1 0 0 0 2 3 3 1 1 0 3 2 3 0 2 0 3 0 3 3 3 1 1 3 1 2 3 0 1 3 1 0 1 1 0 1 1 2 1 0 1 3 1 1 2 1 1 3 2 1 3 0 0 0 0 3 1 0 0 3 2 3 0 2 1 1 2 0 0 0 0 3 2 0 0 0 2 3 0 0 2 3 1 3 0 3 1 1 0 1 1 1 0 3 3 0 0 3 1 0 0 1 2 1 1 1 3 0 2 3 0 3 3 0 3 2 3 3 3 3 3 2 0 2 0 3 3 3 1 0 1 1 1 1 3 3 1 1 1 2 2 1 1 3 0 0 2 3 1 2 0 0 0 2 1 2 1 2 3 ...

Assertion failed.

2   Fail
tic L=4000+randi(200); while 1 % Loop until create a Gtruth with no repeated 16 segments Gtruth=randi(4,1,L,'uint8')-1; Gseg=zeros(L-15,16,'uint8'); GtruthR=fliplr(Gtruth); for j=1:L-15 Gseg(j,:)=Gtruth(j:j+15); Gseg(j+L-15,:)=GtruthR(j:j+15); end Gsegv=uint32(Gseg(:,1)); for j=2:16 Gsegv=4*Gsegv+uint32(Gseg(:,j)); end if size(unique(Gsegv),1)==(L-15)*2 break end end % while create valid Gtruth segs=Gtruth(1:48); % First segment is a required segs=[segs;Gtruth(L-47:end)]; % Last Segment is required ptr=1; while 1 ptr=ptr+randi(32); if ptr+48>L,break;end segs=[segs;Gtruth(ptr:ptr+47)]; end v=randperm(size(segs,1)); % Segs Scrambled Over Easy segs(:,:)=segs(v,:); f=logical(randi(2,size(segs,1),1)-1); segs_orig=segs; segs(f,:)=fliplr(segs(f,:)); Gout = Genome_003R(segs); toc assert(isequal(Gout,Gtruth)||isequal(Gout,fliplr(Gtruth))) %assert( isequal(Gout,Gtruth) )

segs = 603×48 uint8 matrix Columns 1 through 45 0 1 2 0 2 0 0 0 0 3 0 3 0 3 3 1 1 0 1 2 1 0 2 0 2 3 0 0 1 1 2 0 3 2 0 1 0 0 1 1 3 2 1 1 0 2 0 0 1 1 2 2 0 0 0 1 2 0 1 2 3 0 1 3 3 0 3 2 1 3 0 1 2 0 2 1 0 2 1 1 0 2 2 0 0 3 0 2 1 0 3 1 3 2 2 2 2 2 3 1 0 3 0 3 2 0 1 0 3 2 1 0 1 3 0 1 3 2 3 2 3 2 0 1 3 2 2 3 0 1 1 1 3 1 3 0 3 1 3 0 1 0 0 2 3 0 0 1 1 2 0 3 1 1 0 2 2 2 2 2 3 2 3 0 1 0 1 0 1 3 2 0 1 3 1 1 1 2 0 1 0 1 1 3 3 0 3 1 2 3 1 1 1 0 1 2 3 1 2 2 2 2 1 0 0 1 3 0 3 1 0 0 3 3 0 1 0 1 0 0 3 0 3 0 3 0 2 0 2 2 2 1 0 1 1 3 2 3 0 0 3 0 2 3 1 1 1 1 2 2 0 0 0 3 0 3 2 1 1 3 0 3 1 2 0 2 1 2 0 3 3 0 1 0 2 2 2 1 0 3 1 0 2 0 0 2 1 0 0 2 1 2 2 0 0 2 2 1 0 3 3 1 1 1 2 1 1 0 1 2 0 0 0 2 0 3 0 0 3 3 1 0 3 2 3 2 3 2 3 0 0 1 1 0 1 3 1 1 3 0 3 1 1 2 3 1 1 1 3 2 3 3 2 1 1 0 3 0 3 2 0 0 1 1 0 1 0 3 3 2 2 3 1 0 1 1 2 1 1 0 2 1 2 1 0 2 0 2 1 2 0 1 1 2 3 2 2 1 0 3 2 3 3 3 2 0 3 2 1 3 2 3 2 3 2 3 0 2 0 1 1 1 2 2 0 2 2 2 2 1 3 2 2 0 1 2 2 3 2 2 3 0 0 3 0 1 0 2 3 3 1 1 2 2 0 2 1 3 0 2 3 0 2 2 0 0 0 0 2 2 3 1 3 2 3 0 2 0 1 1 0 0 2 3 1 0 2 3 1 2 2 2 0 0 1 3 0 2 1 1 2 0 1 1 1 1 1 0 1 0 0 0 3 2 0 3 2 3 1 0 2 1 1 2 3 0 1 2 0 1 2 1 2 0 1 2 1 0 1 1 3 2 2 1 1 3 1 1 1 2 1 1 1 0 1 0 0 1 1 2 0 2 3 2 1 3 3 1 2 0 0 2 2 0 3 0 1 1 0 2 0 3 3 3 1 3 0 3 0 3 2 2 1 2 3 1 3 0 2 1 1 0 0 1 2 2 1 1 1 0 3 2 2 0 2 0 1 0 2 3 0 0 0 3 2 0 3 3 1 2 3 2 0 0 2 0 1 0 3 2 1 2 0 2 2 0 2 3 3 0 2 3 0 0 1 2 2 1 2 0 1 3 3 0 0 0 2 1 1 1 2 3 1 1 2 1 1 0 2 1 2 2 2 3 3 3 0 2 0 2 1 3 2 3 0 2 3 0 1 1 0 2 1 2 1 1 3 1 0 2 0 0 3 0 3 2 1 3 0 3 2 0 3 2 2 2 3 2 0 0 2 2 1 2 3 1 3 1 1 0 2 0 3 2 1 1 2 2 3 2 2 3 1 2 2 2 0 0 3 3 0 1 3 1 3 3 0 1 2 0 0 0 1 1 0 0 2 2 0 3 3 2 0 1 3 1 1 0 3 1 1 3 0 0 2 0 1 3 3 3 0 2 0 1 1 0 3 0 2 2 1 3 3 2 0 1 3 3 2 1 1 0 0 0 1 0 0 2 1 0 0 3 2 3 0 1 3 3 0 1 1 0 3 2 2 1 0 1 3 2 1 1 3 1 2 0 1 2 0 1 2 0 2 2 2 1 0 0 3 2 1 1 3 3 0 3 2 2 1 1 3 0 2 3 2 1 0 3 1 0 1 0 0 1 2 2 3 0 2 2 2 0 0 2 0 1 0 0 3 2 2 1 3 3 2 3 2 2 0 1 1 3 1 1 3 2 0 2 1 0 3 3 0 1 3 3 0 3 1 2 2 3 2 1 3 2 0 1 1 2 2 0 1 2 3 0 1 0 2 1 3 2 3 1 0 2 0 2 0 1 2 1 2 0 2 0 3 1 1 0 0 2 2 2 1 2 2 2 1 3 1 2 0 1 1 3 3 3 1 1 2 3 1 1 2 3 3 0 3 1 0 3 3 2 0 0 3 1 2 3 3 3 2 0 0 2 3 3 3 2 1 0 0 2 0 0 3 2 0 2 2 3 1 1 2 1 0 2 2 2 1 1 2 0 2 1 3 2 2 3 1 0 0 3 2 1 3 2 3 2 3 0 2 2 2 1 0 0 1 2 0 1 2 0 0 2 3 2 2 1 1 2 1 1 1 2 3 2 1 2 1 3 3 0 2 0 0 0 2 1 2 2 3 1 1 0 0 0 0 3 2 0 3 2 2 2 2 3 1 1 0 1 1 2 1 0 3 3 1 3 0 1 3 2 0 0 1 2 3 2 3 3 3 0 1 2 3 3 0 3 1 2 0 2 1 2 3 1 2 1 2 2 2 0 0 3 0 1 2 2 2 0 2 0 2 0 2 2 1 2 2 2 2 0 0 2 1 2 0 2 0 0 2 1 2 3 0 0 3 0 2 3 0 3 0 2 2 1 3 3 0 1 0 3 1 1 0 0 0 1 3 1 2 1 2 0 0 0 2 3 0 3 3 1 1 2 3 1 3 0 1 0 1 1 3 2 2 0 1 3 0 1 3 3 2 0 1 3 3 2 1 1 0 0 0 1 0 0 2 1 0 0 3 2 3 0 1 3 3 0 1 1 0 3 2 2 1 0 1 3 2 1 1 3 1 2 3 0 1 3 0 2 1 1 0 1 3 3 3 2 3 1 3 0 3 0 0 1 2 0 1 0 3 0 3 1 2 1 1 0 3 0 2 2 1 1 0 2 0 2 0 2 2 3 0 0 1 1 3 0 0 0 1 1 1 3 2 0 3 0 2 1 0 3 3 3 1 3 0 2 2 2 2 0 0 3 1 0 0 0 2 1 0 1 2 1 2 2 2 1 2 0 0 2 0 3 1 2 2 3 1 1 1 2 2 1 2 2 0 0 1 3 3 2 3 0 1 0 2 3 2 2 2 1 0 2 1 3 2 0 3 1 1 1 3 0 0 1 0 2 0 3 3 3 2 3 0 0 3 0 3 1 2 3 1 2 1 2 0 0 3 2 1 1 1 1 1 1 0 1 3 2 3 3 3 3 0 0 1 1 2 3 0 1 3 0 2 1 1 0 1 3 3 3 2 3 1 3 0 3 0 0 1 2 0 1 0 3 0 3 1 2 1 1 0 3 0 2 2 1 1 0 3 1 3 1 1 2 3 0 2 3 3 1 1 2 0 1 3 0 1 2 2 1 2 2 2 3 0 0 1 1 1 2 2 0 2 0 1 1 2 2 2 3 3 1 1 2 2 1 0 2 0 1 1 0 0 1 0 3 1 3 3 0 2 0 2 2 0 1 1 3 1 0 3 3 2 1 2 0 0 2 0 2 3 0 0 0 3 0 2 1 3 3 0 2 0 0 3 3 3 2 1 1 2 0 1 1 1 1 0 1 2 3 1 0 0 0 1 2 0 1 2 0 2 3 3 1 2 1 1 1 2 0 3 1 3 1 0 2 1 2 3 3 3 3 1 1 1 2 2 3 2 1 1 0 0 1 2 0 2 0 0 0 0 3 0 3 0 3 3 1 1 0 1 2 1 0 2 0 1 0 3 1 2 1 1 3 1 2 3 3 3 2 2 3 2 2 3 0 3 2 3 2 0 1 2 2 2 2 1 2 2 0 3 3 2 3 1 2 1 1 0 0 1 0 1 3 0 0 1 3 1 0 0 2 2 0 2 3 3 1 0 1 3 0 1 1 3 0 0 2 0 0 2 2 3 0 3 2 3 3 3 3 0 2 0 2 0 0 0 0 0 2 1 3 1 1 3 2 1 1 2 1 2 3 1 3 3 0 2 3 3 3 0 0 2 3 1 2 0 3 1 3 1 2 0 0 1 1 0 1 1 2 1 2 0 1 0 0 0 1 3 3 0 2 3 1 3 1 1 1 3 3 0 1 3 3 2 0 3 1 0 1 2 1 3 3 0 2 0 0 3 3 3 2 1 1 2 0 1 0 2 0 1 1 0 1 1 2 2 3 1 0 1 1 1 2 2 2 3 1 3 3 1 1 3 1 2 1 2 3 1 1 0 0 1 3 0 0 2 1 0 0 2 1 2 1 1 2 2 2 3 0 3 3 3 3 0 0 3 3 0 3 3 1 0 3 1 0 1 3 0 3 1 2 3 2 2 2 3 0 0 1 0 2 3 1 3 3 0 3 2 3 1 3 2 1 1 1 3 1 1 1 3 2 3 3 3 0 3 0 3 1 1 2 3 1 1 2 3 0 3 2 3 2 3 3 3 1 0 3 2 2 3 2 2 2 3 3 0 2 1 2 2 0 3 2 0 0 2 0 3 2 2 3 2 2 0 2 0 3 0 3 1 1 1 2 1 2 2 3 2 2 0 2 0 3 1 0 2 2 2 1 2 2 2 1 3 3 1 2 2 3 0 1 3 0 1 1 3 2 3 0 1 2 3 0 1 2 0 1 1 1 3 2 1 2 3 2 3 2 1 3 1 0 1 3 0 3 1 2 3 2 2 2 3 0 0 1 0 2 3 1 3 3 0 3 0 2 0 0 3 1 3 3 2 1 2 2 3 2 0 2 3 2 2 1 3 1 0 2 2 3 0 1 1 1 2 2 1 0 0 1 1 2 0 3 1 3 2 1 2 2 3 0 3 0 3 3 2 3 3 1 0 0 1 2 0 3 0 2 1 2 3 1 1 2 3 0 0 3 3 0 2 1 0 3 1 1 0 3 1 2 3 0 0 0 2 0 0 0 0 1 3 1 1 2 1 2 3 3 0 3 2 2 3 2 1 1 3 1 2 0 3 1 2 2 1 2 0 0 2 0 0 1 2 0 2 0 2 2 2 1 0 1 1 3 2 3 0 0 3 0 2 3 1 1 1 1 2 2 0 0 0 1 0 3 2 1 2 1 1 2 0 0 2 1 3 1 3 1 0 1 0 0 0 2 3 3 1 1 0 3 2 3 0 2 0 3 0 3 3 3 1 1 3 1 2 3 0 1 3 1 0 1 1 0 1 1 2 1 0 1 3 1 1 2 1 1 3 2 1 3 0 0 0 0 3 1 0 0 3 2 3 0 2 1 1 2 0 0 0 0 3 2 0 0 0 2 3 0 0 2 3 1 3 0 3 1 1 0 1 1 1 0 3 3 0 0 3 1 0 0 1 2 1 1 1 3 0 2 3 0 3 3 0 3 2 3 3 3 3 3 2 0 2 0 3 3 3 1 0 1 1 1 1 3 3 1 1 1 2 2 1 1 3 0 0 2 3 1 2 0 0 0 2 1 2 1 2 3 ...

Assertion failed.