- #include <iostream> 
- #include <string> 
- #include <fstream> 
- using namespace std; 
-   
- class C {};  
-   
- template<class T> 
- class PriorityQueue { 
- public: 
-     void add() { cout<<"add"<<endl; } 
-     T remove() { cout << "general"<<endl; return T(); } 
- }; 
-   
- template<> 
- string PriorityQueue<string>::remove() { cout << "special"<<endl; return ""; } 
-   
-   
- int main() { 
- 	PriorityQueue<string> q;  
- 	q.remove();  
- 	q.add();  
-   
- 	PriorityQueue<int> p;  
- 	p.remove();  
- 	p.add();  
-   
- 	return 0; 
- } 
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8ZnN0cmVhbT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIEMge307IAoKdGVtcGxhdGU8Y2xhc3MgVD4KY2xhc3MgUHJpb3JpdHlRdWV1ZSB7CnB1YmxpYzoKICAgIHZvaWQgYWRkKCkgeyBjb3V0PDwiYWRkIjw8ZW5kbDsgfQogICAgVCByZW1vdmUoKSB7IGNvdXQgPDwgImdlbmVyYWwiPDxlbmRsOyByZXR1cm4gVCgpOyB9Cn07Cgp0ZW1wbGF0ZTw+CnN0cmluZyBQcmlvcml0eVF1ZXVlPHN0cmluZz46OnJlbW92ZSgpIHsgY291dCA8PCAic3BlY2lhbCI8PGVuZGw7IHJldHVybiAiIjsgfQoKCmludCBtYWluKCkgewoJUHJpb3JpdHlRdWV1ZTxzdHJpbmc+IHE7IAoJcS5yZW1vdmUoKTsgCglxLmFkZCgpOyAKCglQcmlvcml0eVF1ZXVlPGludD4gcDsgCglwLnJlbW92ZSgpOyAKCXAuYWRkKCk7IAoJCglyZXR1cm4gMDsKfQ==