Language: C

/*

????????? ??¨?´?????????? ???????????????
A ???????????????????????§???????????????A ??????????????????????????¨?´???????????±???????????????????
?????????????????¨????????????A???????????? 1 ?????? N ??????????????????????????? N ??????????????¨???
1 ?????? M ??????????????????????????? M ?¨?????????¨?´?????????????????????¨?´????????????°??¶??????
????????????????????¨?´??????????????????????????????????A ?????????????????§?????????????????¨????????¨
?´?????????§??????????±???§???????????????????????¨???????????????????????£????????????

????????????????????????????????????????????????????¬??????????????????§??????????????? K ???????¨????
?????\????????????

??? ?????? a ??¨?????? b ???????????¨?´???????????±????????????????
??? ?????? c ?????¨?´???? x ???????±????????????????

???????????????????¨????????????°??????????????????????????£?????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????¨????????§???????????????????????¢
????????¨????????????

??????
K ???????¨????????????????????????¨???????????????????????¨????????§???????????????????????????????±????
???????????°????????????????????????

??\???
??\????????\????????¢?????§??????????????????

1 a b

?????????

2 c x

???????????°?????????1????????¨??????
	??????a(1???a???N)??¨??????b(1???b???N)???????????¨?´???????????±??????????????????¨??????
	??????????????????a???b??§?????????
???????????°?????????2????????¨??????
	??????c(1???c???N)?????¨?´????x(1???x???M)???????±??????????????????¨????????????

????????¶???
??\?????????????????????????????????????§?????¶?????????????????????????

??????
?????????????????¨????????§??????????????????????????????????????????????????????????????????????????´???
??? 0 ???????????????????????????

	http://judge.u-aizu.ac.jp/onlinejudge/review.jsp?rid=2409100#1

*/

#include <stdio.h>
#include <string.h>

#define	S_NUM	100000
#define	C_NUM	100000

	int n;		// N ????????????
	int m;		// M ?¨?????????¨?´????
	int k;		// K ???????¨????

	// ????????¨?´?????????\??£???????????????????????????????????????????????????
	int s[ S_NUM + 1 ];	
			// ?????????????´????????????????????????¨?´?????????\??£???????????????????????????
			// ??\??£???????????????????????????????????£???????????°???????????????????????§?????£
			// ????????????????????¨?´??????????????????????????????°???-1 ??¨?????????
	
	// ???????????????????????¨?´?????????\??£????????????????????????????????????????????????
	int s2c[ S_NUM + 1 ];
			// student to club

	// ????????¨?´????????????????????????\??£????????????????????????????????????????????????
	int c2s[ C_NUM + 1 ];
			// club to student

/*
 * x ?????¨?´????????????\???????????????????????¢???
 *	????????¨?´????????????\??????????????????????????????????????????????????????????????° -1 ????????????
 */
int findClub(
	int x )
{
	int ret = -1;
	int i = 0;
	
	ret = c2s[ x ];

/*
	for ( i = 1 ; i <= n ; i++  ) {
		if ( s2c[ i ] == x ) {
			ret = i;
			break;
		}
	}
*/

//	printf( "find club [%d] is %d\n", x, ret );

	return ret;							// ??¢??°?????????
}

/*
 * a ??????????????§???????????£?????????????¢??????????
 *	???????????????????????????????????¨?????? -1 ????????????
 */
int checkChain(
	int a )
{
	int ret = 0;
	int club = s2c[ a ];
	int idx = s[ a ];
	
//	printf( "Chain chack %d(%d %d)->", a, idx, club );
	
		// ?????§??????????????¨???????????§???????????????...
	while ( idx != -1 ) {
//		printf( "%d(%d %d)->", idx, s[ idx ], s2c[ idx ] );
		
		if ( ( club != -1 ) && ( s2c[ idx ] == -1 ) ) {
			// ????????¨?´??????¨??????????????????????????????????????¨?´????????????????????????£???
			//	??? ??????????????§?¢???????????????????
			s2c[ idx ] = club;
		}
		else if ( ( club != -1 ) && ( s2c[ idx ] != club ) ) {
			// ???????????§????????????????????°????????¨?´?????????????????????????
			ret = -1;
//			printf( "!!! %d !!!", __LINE__ );
			break;
		}
		else if ( ( club == -1 ) && ( s2c[ idx ] != -1 ) ) {
			// ????????????????????¨?´??????????????????£??????????????§????????????????????¨?´???????
			// ?¢????????????????????????????
			//	??? ?????????????????????????????¨?????§????????????
			a = idx;
			club = s2c[ idx ];
		}
		
		idx = s[ idx ];					// ?¬???????????????????
		if ( idx == a ) {
			break; 						// ?????¨??????
		} 
	}

//	printf( "End.\n" );
	
	return ret;							// ??¢??°?????????
}

/*
 * a ??¨ b ???????????¨?´?????????\??£???????????¨???????????§?????????????????????
 *	???????????????????????????????????¨?????? -1 ????????????
 */
int clubChain(
	int a,
	int b )
{
	int wa, wb;

	wa = s[ a ];
	wb = s[ b ];
	
	if ( ( wa == -1 ) && ( wb == -1 ) ) {
		// ?????????????????¨?´????
//		printf( "(A) " );
		s[ a ] = b;
		s[ b ] = a;
	}
	else if ( ( wa != -1 ) && ( wb == -1 ) ) {
		// a ????????¢???????????¨?´??????????????????? ??? a ??¨ wa ???????????????????????????
//		printf( "(B) " );
		s[ a ] = b;						// 
		s[ b ] = wa;
	}
	else if ( ( wb != -1 ) && ( wa == -1 ) ) {
		// b ????????¢???????????¨?´??????????????????? ??? b ??¨ wa ???????????????????????????
//		printf( "(C) " );
		s[ a ] = wb;					// 
		s[ b ] = a;
	}
	else {
//		printf( "(D) " );
		// ?????????????????¢???????????¨?´???????????????????
		while ( s[ wa ] != a ) {
			wa = s[ wa ];
		}
		while ( s[ wb ] != b ) {
			wb = s[ wb ];
		}
		s[ wa ] = b;
		s[ wb ] = a;
	}

//	printf( "%d(%d) - %d(%d) is chain.\n", a, s[ a ], b, s[ b ] );

	return checkChain( a );				// ??¢??°?????????
}

/*
 * a ??¨ b ???????????¨?´?????????\??£????????????????????§????????????
 *	???????????????????????????????????¨?????? -1 ????????????
 */
int clubSame(
	int a,
	int b )
{
	int ret = 0;
	
//	printf( "%d(%d) - %d(%d) is same club.\n", a, s[ a ], b, s[ b ] );
	
	if ( ( s2c[ a ] != s2c[ b ] ) &&
		 ( s2c[ a ] != -1 ) && ( s2c[ b ] != -1 ) ) {
		// ???????????????????????¨?´?????????\??£??????????????§????????°?????????
		ret = -1;
	}
	else if ( ( s2c[ a ] != -1 ) && ( s2c[ b ] == -1 ) ) {
		// a ?????¨?´?????????\??£??????????????¨????¢??????????????????????b ??????????????£???
		s2c[ b ] = s2c[ a ];
		ret = clubChain( a, b );
	}
	else if ( ( s2c[ b ] != -1 ) && ( s2c[ a ] == -1 ) ) {
		// b ?????¨?´?????????\??£??????????????¨????¢??????????????????????a ??????????????£???
		s2c[ a ] = s2c[ b ];
		ret = clubChain( b, a );
	}
	else if ( ( s2c[ b ] == -1 ) && ( s2c[ a ] == -1 ) ) {
		// a ??? b ??????????????§???????±???????
		ret = clubChain( a, b );
	}
	
	return ret;							// ??¢??°?????????
}

/*
 * ????????????????????????
 */
void init( void )
{
	int i;
	
	for ( i = 1 ; i <= n ; i++ ) {
		s[ i ] = -1;			// ?????????????????°??¨??????????????¨?´???????????±????????????????
		s2c[ i ] = -1;			// ??????????????????????????¨?´??????????????±????????????????
	}

	for ( i = 1 ; i <= m ; i++ ) {
		c2s[ i ] = -1;			// ????????¨?´????????????°???????±????????????????
	}

	return;								// ??¢??°?????????
}

int main( void )
{
	int t1, t2, t3;
	int i, j;
	int flag = -1;


	scanf( "%d %d %d", &n, &m, &k );

	init( );

	for ( i = 0 ; i < k ; i++ ) {
		
		scanf( "%d %d %d", &t1, &t2, &t3 );

//		printf( "Line:%d  %d %d %d\n", i + 1, t1, t2, t3 );
		
		if ( t1 == 1 ) {
			// ???????????°?????????1????????¨???????????? a(t2) ??¨?????? b(t3) ?????????
			// ??¨?´???????????±??????????????????¨????????????
			if ( ( t2 < 1 ) || ( t3 < 1 ) || ( t2 > n ) || ( t3 < n ) || ) {
				flag = i + 1;
				break;
			}
			else if ( clubSame( t2, t3 ) != 0 ) {
//				printf( "!!! %d !!!", __LINE__ );
				flag = i + 1;
				break;
			}
		}
		else {
			// ???????????°?????????2????????¨???????????? c(t2) ?????¨?´???? x(t3) ??????
			// ?±??????????????????¨????????????
			if ( ( t2 < 1 ) || ( t3 < 1 ) || ( t2 > n ) || ( t3 < m ) || ) {
				flag = i + 1;
				break;
			}
			else if ( ( s2c[ t2 ] != -1 ) && ( s2c[ t2 ] != t3 ) ) {
				// ??¢???????????¨?´???????????±??????????????????¨????????£?????????
//				printf( "!!! %d !!!", __LINE__ );
				flag = i + 1;
				break;
			}
			
			j = findClub( t3 );	// x ?????¨?´?????????¢???????±????????????????????????¢???
			if ( j == -1 ) {
				// ????????¨?´???????????±?????????????????????????????¢??????????????????????
				c2s[ t3 ] = t2;
				s2c[ t2 ] = t3;
				if ( checkChain( t2 ) != 0 ) {
//					printf( "!!! %d !!!", __LINE__ );
					flag = i + 1;
					break;
				}
			}
			else {
				// ????????¨?´???????????±???????????????????????????§?????????????????????
				s2c[ t2 ] = t3;
				if ( checkChain( j ) != 0 ) {
//					printf( "!!! %d !!!", __LINE__ );
					flag = i + 1;
					break;
				}
			}
		}
		
//		for ( j = 1 ; j <= n ; j++ ) {
//			printf( "%3d ", s2c[ j ] );
//		}
//		printf( "\n" );
	}

	if ( flag == -1 ) {
		printf( "0\n" );
	}
	else {
		printf( "%d\n", flag );
	}

	return 0;
}

Compiler output:
main.c: In function 'main':
main.c:270:86: error: expected expression before ')' token
  270 |                         if ( ( t2 < 1 ) || ( t3 < 1 ) || ( t2 > n ) || ( t3 < n ) || ) {
      |                                                                                      ^
main.c:283:86: error: expected expression before ')' token
  283 |                         if ( ( t2 < 1 ) || ( t3 < 1 ) || ( t2 > n ) || ( t3 < m ) || ) {
      |                                                                                      ^