Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его. Donald E. Knuth