Answer should be B.
Many to many is model overcomes the disadvantages of one to one and many to one.
In many to one, programmer can make as many threads as she wants. The good thing about this is there is no support required by the OS when switching from one thread to other(switching is fast). The bad thing is all the user threads mapped to one kernel thread cannot be run concurrently even in multiprocessor system. The kernel is not aware of any thread at user level.
In one to one, the good thing is threads can run in parallel in multiprocessor system. Each kernel thread can be run on one processor. The bad thing is the threading concept is totally overlooked. Now switching between threads is a time consuming operation because it involves switching between kernel level threads as well.
Operating system by Galvin 9th edition will be a good read.