В магазине продается мастика в ящиках по a кг (тип 1), b кг (тип 2) и c кг (тип 3). Как купить ровно N кг мастики, не вскрывая ящики? Сколькими способами можно это сделать?
 
 
Входные данные 
Входная строка содержит четыре числа, разделённые пробелами: a , b , c и N .
Выходные данные 
В первой строке нужно вывести число K способов, которыми можно купить заданное количество мастики (N кг), не вскрывая ящики. В каждой из последующих K строчек программа должна вывести (через пробелы) три числа, ka , kb и kc : количество ящиков 1, 2 и 3 типов для каждого из K вариантов закупки. Варианты должны выводиться в лексикографическом порядке: сначала варианты с наименьшим значением ka , для одинаковых ka – сначала варианты с наименьшим значением kb и т.д.
 
Примеры
	
		
			| № | Входные данные | Выходные данные | 
	
	
		
			| 1 | 15 17 21 185 | 5 0 1 8
 1 10 0
 3 7 1
 5 4 2
 7 1 3
 |