http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=442