#include <iostream>
#include <list>
#include <vector>
#include <algorithm>
#include <iterator>
#include <string>
using namespace std;

template <typename T, typename A, template <typename X, typename Y> class C> 
std::ostream &operator<<(std::ostream &os, const C<T,A> &container)
{
  if(!container.empty())
    std::copy(container.begin(), container.end(), std::ostream_iterator<T>(os, " "));
  return os;
}

int main() {
	list<int> l{1,2,3,4,5}; 
	vector<string> v{"one","two","three"};
	cout<<l<<endl<<v; 
	return 0;
}