In reply to nalla raghu:
I think you meant to write
c: cross a,p;
as only coverpoints and variable names are allowed in a cross.
This example is almost identical to the example in section 19.6.1.1 E of the 1800-2017 LRM. Please take a look at it. The important thing to remember is that the autogenerated bins get constructed first (in your case, 9 cross bins), and the user defines bins collapse those autogenerated bins that overlap it into a single bin.