Hmm... Actually I have no idea. The problem looks a little complicated.