#include <iostream>
#include <cstdlib>
class A {public: ~A(){std::cout << "STATIC DESTRUCTOR\n";}} a;
int main() {
class B {public: ~B(){std::cout << "STACK DESTRUCTOR\n";}} b;
class C {public: ~C(){std::cout << "HEAP DESTRUCTOR\n";}}; new C;
thread_local class D {public: ~D(){std::cout << "THREAD_LOCAL DESTRUCTOR\n";}} d;
std::exit(0);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGxpYj4KCmNsYXNzIEEge3B1YmxpYzogfkEoKXtzdGQ6OmNvdXQgPDwgIlNUQVRJQyBERVNUUlVDVE9SXG4iO319IGE7CgppbnQgbWFpbigpIHsKCWNsYXNzIEIge3B1YmxpYzogfkIoKXtzdGQ6OmNvdXQgPDwgIlNUQUNLIERFU1RSVUNUT1JcbiI7fX0gYjsKCWNsYXNzIEMge3B1YmxpYzogfkMoKXtzdGQ6OmNvdXQgPDwgIkhFQVAgREVTVFJVQ1RPUlxuIjt9fTsgbmV3IEM7Cgl0aHJlYWRfbG9jYWwgY2xhc3MgRCB7cHVibGljOiB+RCgpe3N0ZDo6Y291dCA8PCAiVEhSRUFEX0xPQ0FMIERFU1RSVUNUT1JcbiI7fX0gZDsKCQoJc3RkOjpleGl0KDApOwp9