#include <cstdio>

template <int a, int b> struct F
{
  enum { value = a * b };
};

template <int a> struct F<a, a>
{
  enum { value = -1 };
};

int main()
{
  int x = F<2, 2>::value;
  printf("%d\n", x);
  return 0;
}