#include<iostream>
using namespace std;

template<typename T,typename U> T convert(U u) {return (T)u;};
template<typename U,typename T> T inv_convert(U u) {return (T)u;};
/* powyÅ¼sze szablony rÃ³Å¼niÄ? siÄ? tylko kolejnoÅ?ciÄ? paramtrÃ³w */
main() {

//cout<<convert(33)<<endl; 
  /*bÅ?Ä?d: nie moÅ¼na wydedukowaÄ? abu argumentÃ³w*/

cout<<convert<char>(33)<<endl;
/*OK, ierwszy argument jest podany, drugi moÅ¼na wydedukowaÄ?*/

//cout<<inv_convert<char>('a')<<endl; 
  /*bÅ?Ä?d: pierwszy argument podany, ale drugiego nie moÅ¼na wydedukowadÄ?*/ 

//cout<<inv_convert<int>('a')<<endl;  
  /*bÅ?Ä?d: pierwszy argument podany, wymusza konwersje char na int \
    ale drugie go wydedukowaÄ? nie moÅ¼na*/ 
  cout<<inv_convert<int,char>(33)<<endl;
}