Sort Game Problem all the testcases are failing help me to figure out why

#include<bits/stdc++.h>
#include
#define ll long long int
using namespace std;

class salary{
public:
string name;
ll sal;
};

bool comp(salary a,salary b){
if( a.sal > b.sal){
return true;
}
if( a.sal == b.sal){
if(a.name > b.name){
return true;
}
}
return false;
}

int main(){
ll x;
cin>>x;
ll n;
cin>>n;
vector v;
for(ll i=0;i<n;i++){
string name;
ll sal;
cin>>name>>sal;
if(sal >= x){
salary xy;
xy.name = name;
xy.sal = sal;
v.push_back(xy);
}

}
sort(v.begin(),v.end(),comp);
for(ll i=0;i<v.size();i++){
	cout<<v[i].name<<" "<<v[i].sal<<endl;
}
return 0;

}

@amangoel987357
hello aman,

here if(a.name > b.name) then u should return false;
because we want to sort the names in lexicographical order