fun main(args: Array<String>) {
    val (N, M) = readInputLine().split(" ").map { it.toLong() }
    
    // S >= c / 2の場合はc / 2がそのまま答えに
    if (N >= M / 2L) {
        println(M / 2L)
        return
    }
    
    // それ以外の場合はcをSに置き換える
    // 使うcの個数をxとすると、
    // N + x / 2 = (M - x) / 2
    // が平衡点(x = (M - 2N) / 2)
    // このときSの個数はS + x / 2
    println(N + ((M - 2L * N) / 4L))
}

fun readInputLine(): String {
    return readLine()!!
}
