#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define lint long long int /* vectoral(26); al = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}; vectorAL(26); AL = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'}; */ int main() { lint n, X; cin >> n >> X; vectorA(n); for (int i = 0; i < n; i++) { cin >> A[i]; } sort(A.begin(), A.end()); int ans = 0; for (int i = 0; i < n; i++) { ans += upper_bound(A.begin(), A.end(), X - A[i]) - lower_bound(A.begin(), A.end(), X - A[i]); } cout << ans << endl; }