a) The long term scheduler actually controls or we can say holds the degree of multiprogramming .It is the responsibility to bring CPU bound process and I/O bound process in the ready state and hence in main memory in an appropriate ratio.CPU bound processes are those processes which consume most of the time in CPU so CPU time is larger than I/O time whereas I/O bound processes consume less CPU time and more I/O time.
So more number of CPU bound processes means the I/O wait state will remain idle similarly if we have more I/O bound processes then CPU will remain idle and hence throughput will decrease.So it is the responsibility of long term scheduler to bring CPU bound and I/O process to the ready state in the balanced ratio.
b) The task of decreasing the degree of multiprogramming i.e. no of process in main memory is done by mid term scheduler which is also known as "swapping out" of the process.It is quite possible that the no of processes created by LTS and submitted to the ready state may be high.In that case , LTS cannot take back the process.So here comes the role of mid term scheduler.It swaps out the process from main memory to secondary memory(from ready state to suspend ready state) , thereby reducing the degree of multiprogramming.Similarly a process may also be suspended in I/O wait state by MTS if adequate resources are not available.
So answer to a) part should be long term scheduler and part b) should be mid term scheduler.