Mutable Lambda

What does this print?

#include <iostream>
int main() {
    int x = 0;
    auto f = [x]() mutable { return ++x; };
    std::cout << f() << f() << f();
}
A

Compile error: cannot modify a captured-by-value variable

B

000

C

111

D

123