import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main{
public static int deal(int n){
int ans=0;
int[] list=new int[n];
for(int i=0;i<n;i++){
list[i]=i+1;
}
Map<Integer,Integer> map=new HashMap<Integer,Integer>();
for(int i=0;i<n;i++){
for (int j=0;j<n;j++){
int temp=(int)Math.pow(list[i],list[j]);
// System.out.println(list[i]+"*"+list[j]+"temp="+temp);
if(map.containsKey(temp)){
int count=map.get(temp);
map.put(temp,++count);
}else {
map.put(temp,1);
}
}
}
for(Integer key:map.keySet()){
int m=map.get(key);
// System.out.println("m="+m);
int sum=m+m*(m-1);
ans+=sum;
}
return ans;
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int rr=deal(n);
int ans=rr%1000000007;
System.out.println(ans);
}
}