A language is a inherently ambiguous there is not exist any unambiguous grammer.
Ref : https://en.wikipedia.org/wiki/Ambiguous_grammar#Inherently_ambiguous_languages
Now in option (a) , the language generated by this grammer is
L = { am bn dl | m = n} U { am bn dl | n=l}
let L1 = { am bn dl | m = n} & L2 = { am bn dl | n=l}
So here the language itself there is a conflict requirement for its string. L1 is the set of strings where number of a's and b's are same while L2 is the set of string where number of b's and d's are same. Strings of type an bn dn will have two parse tree.
There is no unambiguous grammar for it.
Option (b) language generated by this is
L = { ambn | n>m } U { (a+b)* } = (a+b)*
So for this language you can definitely give unambiguous grammer and even this language is regular and regular language do not posses unambiguity.
S->aS|bS|^ is unambiguous grammar for it.
Only Grammer given in Option (a) generates inherently ambiguous language