#include <atcoder/all>
using namespace std;

int main(){
    int n, v;
    cin >> n;
    vector<int> t(n + 1);
    atcoder::dsu uf(n);
    for(int i = 0; i < n; i++){
        cin >> v;
        uf.merge(--v, i);
    }
    auto G = uf.groups();
    for(auto c:G) t[c.size()]++;
    for(int i = 2; i <= n; i+=2){
        if(t[i] & 1){
            cout << "No" << endl;
            return 0;
        }
    }
    cout << "Yes" << endl;
}