#include <iostream>     
#include <algorithm>    
#include <vector>

using namespace std;

template<class T>
void permute(vector<T>& data)
{
 while ( next_permutation(data.begin() , data.end() ) )
 {
    for(unsigned int i=0 ; i<data.size() ; i++)
    {
       cout<< data[i] << " ";
    }
    cout << "\n";
 } 
}



int main () 
{
  vector<int> data;
  data.push_back(1);
  data.push_back(2);
  data.push_back(3);

  permute( data );
  
  
  cout<< "\nidemo na slova\n";
  vector<char> chars;
  chars.push_back('a');
  chars.push_back('b');
  chars.push_back('c');

  permute( chars );
 

  return 0;
}