#include <iostream>
using namespace std;

class String { };
template<class T> class Array { /* ... */ };
template<class T> void sort(Array<T>& v) { /* ... */ }

//template<> void sort<String>(Array<String>& v)    {}
void f(Array<String>& v) {
  sort(v);          // use primary template sort(Array<T>&), T is String
}

template<> void sort<String>(Array<String>& v)    {}
template<> void sort<>(Array<char*>& v)       {}

int main() {
	// your code goes here
	return 0;
}