L1 ={0n+m1n0m|n,m≥0} is context free (first n+m 0's are pushed into the stack, then for each of the 1s and 0s following, we will pop the 0's in the stack one by until at the end of the word if the stack is empty then the word is accepted).
L2 ={0n+m1n+m0m|n,m≥0} is not context free, since two comparisons have to be made here to determine if w∈ L2.
1.0's and 1's are equal.
2.Since m < (n+m). we have to ensure that, 0's which come after 0n+m1n+m, are less in number, compared to n+m.
L3= {0n+m1n+m0n+m|n,m≥0} is clearly context sensitive since have also 2 comparisons have to be made. Infact this language is same as
L3={0x1x0x|x≥0, which is context sensitive.