#include using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); int N; cin >> N; int zero = 0,one = 0,two = 0; for(int i=0; i> a; if(a == 0) zero++; if(a == 1) one++; if(a == 2) two++; } long double answer = 0; vector dp(N+1,vector(N+1,vector(N+1))); dp.at(zero).at(one).at(two) = 1; for(int i=N; i>=0; i--) for(int k=N; k>=0; k--) for(int l=N; l>=0; l--){ if(i+k+l == 0) continue; long double d = dp.at(i).at(k).at(l); int left = N-i-k-l; long double mul = N/(N-left+0.0),div = 1.0/(i+k+l); answer += d*mul; if(i) dp.at(i-1).at(k+1).at(l) += i*div; if(k) dp.at(i).at(k-1).at(l+1) += k*div*d; if(l) dp.at(i).at(k).at(l-1) += l*div*d; } cout << fixed << setprecision(20) << answer << endl; }