What does this code print?
int main()
{ auto p1 = make_shared(42);
auto p2 = p1;
cout << *p1 << endl;
cout << *p2 << endl;
(*p2)++;
cout << *p1 << endl; }
A. 424343
B. Does not compile (illegal)
C. 424242
D. Undefined behavior
E. 424243