/****************************/
/* 関数(様々な引数)       */
/*      coded by Y.Suganuma */
/****************************/
#include <iostream>
#include <vector>
using namespace std;
template <class cl> vector<cl> range(cl start, cl end, cl step = 1) {
	vector<cl> x;
	if (step > 0) {
		for (cl i1 = start; i1 < end; i1 += step)
			x.push_back(i1);
	}
	else {
		for (cl i1 = start; i1 > end; i1 += step)
			x.push_back(i1);
	}
	return x;
}
int main()
{
	for (auto a : range(1, 4))
		cout << a << " ";
	cout << endl;
	for (auto a : range(10, 0, -1))
		cout << a << " ";
	cout << endl;
	for (auto a : range(1.3, 4.7, 1.1))
		cout << a << " ";
	cout << endl;
	return 0;
}