#include <iostream>
using namespace std;

template <class T1, class T2>
struct S
{
	T1 x;
	T2 y;
	template <class T3, class T4>
	S (const S <T3, T4> other) : x (other.x), y (other.y) {}
	S (T1 new_x, T2 new_y) : x (new_x), y (new_y) {}
	void print (void) {cout << x << " " << y << endl;}
};

int main (void)
{
	S <int, int> s = S <double, double> (1.2, 3.4);
	s.print ();
	return 0;
}
