Language: C++

#include <bits/stdc++.h>
using namespace std;

int pow(ll x, ll n,ll mod)
{
	ll res = 1;
	while (n > 0)
	{
		if (n & 1) res = res * x % mod;
		x = x*x%mod;
		n >>= 1;
	}
	return res;
}

int main()
{
	int m, n; cin >> m >> n;
	cout << pow(m, n, 1000000007) << endl;
}

Compiler output:
a.cc:4:9: error: 'int pow' redeclared as different kind of entity
    4 | int pow(ll x, ll n,ll mod)
      |         ^~
In file included from /usr/include/features.h:523,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/os_defines.h:39,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/c++config.h:683,
                 from /usr/include/c++/14/cassert:43,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:33,
                 from a.cc:1:
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:173:1: note: previous declaration 'double pow(double, double)'
  173 | __MATHCALL_VEC (pow,, (_Mdouble_ __x, _Mdouble_ __y));
      | ^~~~~~~~~~~~~~
a.cc:4:9: error: 'll' was not declared in this scope
    4 | int pow(ll x, ll n,ll mod)
      |         ^~
a.cc:4:15: error: 'll' was not declared in this scope
    4 | int pow(ll x, ll n,ll mod)
      |               ^~
a.cc:4:20: error: 'll' was not declared in this scope
    4 | int pow(ll x, ll n,ll mod)
      |                    ^~
a.cc: In function 'int main()':
a.cc:19:20: error: no matching function for call to 'pow(int&, int&, int)'
   19 |         cout << pow(m, n, 1000000007) << endl;
      |                 ~~~^~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14/valarray:605,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:166:
/usr/include/c++/14/bits/valarray_after.h:549:1: note: candidate: 'template<class _Tp> std::_Expr<std::__detail::_BinClos<std::_Pow, std::_Constant, std::_ValArray, _Tp, _Tp>, _Tp> std::pow(const typename valarray<_Tp>::value_type&, const valarray<_Tp>&)'
  549 | _DEFINE_EXPR_BINARY_FUNCTION(pow, struct std::_Pow)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/valarray_after.h:549:1: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/14/bits/valarray_after.h:549:1: note: candidate: 'template<class _Tp> std::_Expr<std::__detail::_BinClos<std::_Pow, std::_ValArray, std::_Constant, _Tp, _Tp>, _Tp> std::pow(const valarray<_Tp>&, const typename valarray<_Tp>::value_type&)'
  549 | _DEFINE_EXPR_BINARY_FUNCTION(pow, struct std::_Pow)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/valarray_after.h:549:1: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/14/bits/valarray_after.h:549:1: note: candidate: 'template<class _Tp> std::_Expr<std::__detail::_BinClos<std::_Pow, std::_ValArray, std::_ValArray, _Tp, _Tp>, _Tp> std::pow(const valarray<_Tp>&, const valarray<_Tp>&)'
  549 | _DEFINE_EXPR_BINARY_FUNCTION(pow, struct std::_Pow)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/valarray_after.h:549:1: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/14/bits/valarray_after.h:549:1: note: candidate: 'template<class _Dom> std::_Expr<std::__detail::_BinClos<std::_Pow, std::_Constant, std::_Expr, typename _Dom::value_type, _Dom>, typename _Dom::value_type> std::pow(const typename _Dom::value_type&, const _Expr<_Dom1, typename _Dom1::value_type>&)'
  549 | _DEFINE_EXPR_BINARY_FUNCTION(pow, struct std::_Pow)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/valarray_after.h:549:1: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/14/bits/valarray_after.h:549:1: note: candidate: 'template<class _Dom> std::_Expr<std::__detail::_BinClos<std::_Pow, std::_Expr, std::_Constant, _Dom, typename _Dom::value_type>, typename _Dom::value_type> std::pow(const _Expr<_Dom1, typename _Dom1::value_type>&, const typename _Dom::value_type&)'
  549 | _DEFINE_EXPR_BINARY_FUNCTION(pow, struct std::_Pow)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/valarray_after.h:549:1: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/14/bits/valarray_after.h:549:1: note: candidate: 'template<class _Dom> std::_Expr<std::__detail::_BinClos<std::_Pow, std::_ValArray, std::_Expr, typename _Dom::value_type, _Dom>, typename _Dom::value_type> std::pow(const valarray<typename _Dom::valarray>&, const _Expr<_Dom1, typename _Dom1::value_type>&)'
  549 | _DEFINE_EXPR_BINARY_FUNCTION(pow, struct std::_Pow)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/valarray_after.h:549:1: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/14/bits/valarray_after.h:549:1: note: candidate: 'template<class _Dom> std::_Expr<std::__detail::_BinClos<std::_Pow, std::_Expr, std::_ValArray, _Dom, typename _Dom::value_type>, typename _Dom::value_type> std::pow(const _Expr<_Dom1, typename _Dom1::value_type>&, const valarray<typename _Dom::value_type>&)'
  549 | _DEFINE_EXPR_BINARY_FUNCTION(pow, struct std::_Pow)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/valarray_after.h:549:1: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/14/bits/valarray_after.h:549:1: note: candidate: 'template<class _Dom1, class _Dom2> std::_Expr<std::__detail::_BinClos<std::_Pow, std::_Expr, std::_Expr, _Dom1, _Dom2>, typename _Dom1::value_type> std::pow(const _Expr<_Dom1, typename _Dom1::value_type>&, const _Expr<_Dom2, typename _Dom2::value_type>&)'
  549 | _DEFINE_EXPR_BINARY_FUNCTION(pow, struct std::_Pow)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/valarray_after.h:549:1: note:   candidate expects 2 arguments, 3 provided
In file included from /usr/include/c++/14/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:127:
/usr/include/c++/14/complex:2482:5: note: candidate: 'template<class _Tp, class _Up> std::complex<typename __gnu_cxx::__promote<decltype (((typename __gnu_cxx::__promote<_Tp, std::__is_integer<_Tp>::__value>::__type)(0) + (typename __gnu_cxx::__promote<_Up, std::__is_integer<_Up>::__value>::__type)(0)))>::__type> std::pow(const complex<_Tp>&, const complex<_Up>&)'
 2482 |     pow(const std::complex<_Tp>& __x, const std::complex<_Up>& __y)
      |     ^~~
/usr/include/c++/14/complex:2482:5: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/14/complex:2474:5: note: candidate: 'template<class _Tp, class _Up> std::complex<typename __gnu_cxx::__promote<decltype (((typename __gnu_cxx::__promote<_Tp, std::__is_integer<_Tp>::__value>::__type)(0) + (typename __gnu_cxx::__promote<_Up, std::__is_integer<_Up>::__value>::__type)(0)))>::__type> std::pow(const _Tp&, const complex<_Up>&)'
 2474 |     pow(const _Tp& __x, const std::complex<_Up>& __y)
      |     ^~~
/usr/include/c++/14/complex:2474:5: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/14/complex:2466:5: note: candidate: 'template<class _Tp, class _Up> std::complex<typename __gnu_cxx::__promote<decltype (((typename __gnu_cxx::__promote<_Tp, std::__is_integer<_Tp>::__value>::__type)(0) + (typename __gnu_cxx::__promote<_Up, std::__is_integer<_Up>::__value>::__type)(0)))>::__type> std::pow(const complex<_Tp>&, const _Up&)'
 2466 |     pow(const std::complex<_Tp>& __x, const _Up& __y)
      |     ^~~
/usr/include/c++/14/complex:2466:5: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/14/complex:1339:5: note: candidate: 'template<class _Tp> std::complex<_Tp> std::pow(const _Tp&, const complex<_Tp>&)'
 1339 |     pow(const _Tp& __x, const complex<_Tp>& __y)
      |     ^~~
/usr/include/c++/14/complex:1339:5: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/14/complex:1328:5: note: candidate: 'template<class _Tp> std::complex<_Tp> std::pow(const complex<_Tp>&, const complex<_Tp>&)'
 1328 |     pow(const complex<_Tp>& __x, const complex<_Tp>& __y)
      |     ^~~
/usr/include/c++/14/complex:1328:5: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/14/complex:1294:5: note: candidate: 'template<class _Tp> std::complex<_Tp> std::pow(const complex<_Tp>&, const _Tp&)'
 1294 |     pow(const complex<_Tp>& __x, const _Tp& __y)
      |     ^~~
/usr/include/c++/14/complex:1294:5: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/14/complex:1285:5: note: candidate: 'template<class _Tp> std::complex<_Tp> std::pow(const complex<_Tp>&, int)'
 1285 |     pow(const complex<_Tp>& __z, int __n)
      |     ^~~
/usr/include/c++/14/complex:1285:5: note:   candidate expects 2 arguments, 3 provided
In file included from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:114:
/usr/include/c++/14/cmath:1074:5: note: candidate: 'template<class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type std::pow(_Tp, _Up)'
 1074 |     pow(_Tp __x, _Up __y)
      |     ^~~
/usr/include/c++/14/cmath:1074:5: note:   candidate expects 2 arguments, 3 provided
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:173:1: note: candidate: 'double pow(double, double)'
  173 | __MATHCALL_VEC (pow,, (_Mdouble_ __x, _Mdouble_ __y));
      | ^~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:173:1: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/14/cmath:380:3: note: candidate: 'constexpr long double std::pow(long double, long double)'
  380 |   pow(long double __x, long double __y)
      |   ^~~
/usr/include/c++/14/cmath:380:3: note:   candidate expects 2 arguments, 3 provided
/usr/include/c++/14/cmath:376:3: note: candidate: 'constexpr float std::pow(float, float)'
  376 |   pow(float __x, float __y)
      |   ^~~
/usr/include/c++/14/cmath:376:3: note:   candidate expects 2 arguments, 3 provided