Contributed by Carles Rodrigo Monzó
Contributed by Gayaneh Bagdasaryan
Contributed by Vyacheslav Kirilenko