#include #include template bool isKadomatsu(T a, T b, T c) { if (a == b || a == c || b == c) return false; T max = std::max(a, std::max(b, c)); T min = std::min(a, std::min(b, c)); if (max == b || min == b) return true; return false; } int main() { int a1, a2, a3; std::cin >> a1 >> a2 >> a3; // すでに門松列の場合は無限に答えが存在する if (isKadomatsu(a1, a2, a3)) { std::cout << "INF" << std::endl; return 0; } // 同じ値が存在するならどうやっても門松列にならない if (a1 == a2 || a1 == a3 || a2 == a3) { std::cout << 0 << std::endl; return 0; } int loop = std::max(a1, std::max(a2, a3)); int ans = 0; for (int i = 1; i <= loop; i++) { if (isKadomatsu(a1 % i, a2 % i, a3 % i)) { ans++; } } std::cout << ans << std::endl; return 0; }