problem A
problem B
problem D
problem D