/* package whatever; // don't place package name! */

import java.util.Arrays;
import java.util.function.Function;

/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
	public static void main (String[] args) throws java.lang.Exception
	{
		System.out.println(Arrays.toString(
			t.apply(new int[] {1,2,2,2,5,7,10,20})
			 .apply(new int[] {1,1,2,3,6,6,15,21,21,22})
			));
	}
	
	static int[] toyStore(int[]g,int[]b) {
		int gl=g.length,bl=b.length,gp=0,bp=0,ap=0;
		int[] a=new int[gl],s=new int[bl];
		for (;bp<bl;) {
			while(gp<gl&&g[gp]<=b[bp])a[ap++]=g[gp++];
			s[bp++]=ap>0?a[--ap]:0;
		}
		return s;
	}
	static int[]t(int[]g,int[]b){int l=g.length,L=b.length,G=0,B=0,A=0;int[]a=new int[l],s=new int[L];for(;B<L;){while(G<l&&g[G]<=b[B])a[A++]=g[G++];s[B++]=A>0?a[--A]:0;}return s;}
	
	static Function<int[],Function<int[],int[]>>t= 
	       g->b->{int l=g.length,L=b.length,G=0,B=0,A=0;int[]a=new int[l],s=new int[L];for(;B<L;){while(G<l&&g[G]<=b[B])a[A++]=g[G++];s[B++]=A>0?a[--A]:0;}return s;};
}