#include using namespace std; typedef int32_t h_int32; typedef int64_t h_int64; typedef uint32_t uh_int32; typedef uint64_t uh_int64; typedef h_int64 h_int; #define REP( i, n ) for(int i = 0; i < ( int )( n ); ++i ) #define REPR( i, n ) for(int i = ( int )( n ); i >= 0; --i) #define FOR( i, a, n ) for(int i = ( int )( a ); i < ( int )( n ); ++i ) #define FORR( i, a, n ) for(int i = ( int )( n ); i >= ( int )( a ); --i) #define VINIT( v, type, n )vector v; v.resize( n ); #define VINIT2( v, type, n, a )vector v; v.resize( n, a ); #define VCIN( v, type, n ) VINIT( v, type, n ) REP( i, n ) cin >> v[i]; #define ALL( x ) x.begin(), x.end() #define DOUT( x ) cerr << #x << " = " << x << "\n" #define COUT( x ) cout << ( x ) << "\n" #define INF 999999999 signed main() { ios::sync_with_stdio( false ); cin.tie( 0 ); int a1, a2, a3; cin >> a1 >> a2 >> a3; if( a1 == a2 || a2 == a3 || a3 == a1 ) { COUT( 0 ); return 0; } if( ( a2 < a1 && a2 < a3 ) || ( a2 > a1 && a2 > a3 ) ) { COUT( "INF" ); return 0; } int m = max( a1, a2 ); m = max( m, a3 ); int cnt = 0; FOR( i, 1, m + 1 ) { int b1, b2, b3; b1 = a1 % i; b2 = a2 % i; b3 = a3 % i; if( b1 == b3) continue; if( ( b2 < b1 && b2 < b3 ) || ( b2 > b1 && b2 > b3 ) ) ++cnt; } COUT( cnt ); return 0; }