grepl a través de múltiples columnas especificadas

Quiero crear una nueva columna en mi marco de datos que sea VERDADERO o FALSO dependiendo de si un término aparece en dos columnas especificadas. Estos son algunos datos de ejemplo:

AB <- c('CHINAS PARTY CONGRESS','JAPAN-US RELATIONS','JAPAN TRIES TO')
TI <- c('AMERICAN FOREIGN POLICY', 'CHINESE ATTEMPTS TO', 'BRITAIN HAS TEA')
AU <- c('AUTHOR 1', 'AUTHOR 2','AUTHOR 3')
M  <- data.frame(AB,TI,AU)

Puedo hacerlo para una columna u otra, pero no puedo entender cómo hacerlo para ambas. En otras palabras, no sé cómo combinar estas dos líneas que no se sobrescriban mutuamente.

M$China <- mapply(grepl, "CHINA|CHINESE|SINO", x=M$AB)
M$China <- mapply(grepl, "CHINA|CHINESE|SINO", x=M$TI)

Es importante que especifique las columnas, no puedo elegir el data.frame completo. He buscado otras preguntas similares, pero ninguna parecía aplicarse a mi caso y no he podido adaptar ningún ejemplo existente. Esto es lo que tendría sentido para mí:

M$China <- mapply(grepl, "CHINA|CHINESE|SINO", x=(M$AB|M$TI)

Respuestas a la pregunta(2)

Su respuesta a la pregunta