Such questions should be solved considering the options given, because that way you would be able to judge the way the compiler is implemented.
Here we allocate 3 bits for p, 2 bits for c and 2 bits for m.
Since we are storing 2 which in binary is 10, storing it in 3 bits will give us 010 which still remains to be 2
similarly, we are storing -6 (2's complement of 0110 = 1010), in 2 bits, discarding the MSBs we have 10 which is 2
5 = (101)2 again discarding MSBs to fit into 2 bits gives 1 which in decimal notation remains to be 1
Hence 221