#include <iostream>

template <typename t>
class Number
{
   private:
      t n;
   public:
      Number(t a) :n{ a } {};
      Number() :n{ t() } {};
      friend std::ostream& operator<<(std::ostream & os, const Number& a)
      {
         os << a.n;
         return os;
      }

      friend Number operator%(Number a, Number b)
      {
         return Number(a.n % b.n);
      }
};

int main()
{
   Number<int> a(10);
   Number<int> b(20);
   Number<int> c = a % b;
   std::cout << c << std::endl;
}
