#include <bits/stdc++.h>
#define mem(s,t) memset(s,t,sizeof(s))
#define pb(s) push_back(s)
#define inf 0x3f3f3f3f
#define mn 100010
typedef long long ll;
using namespace std;

struct X
{
    int w,i;
}a[100010],b[100010];

bool cmp(X x,X y)
{
    return x.w<y.w;
}

int n,to[100010],vis[100010];

int main()
{
    int i,j;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&a[i].w);
        a[i].i=i;
    }
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&b[i].w);
        b[i].i=i;
    }
    sort(a+1,a+n+1,cmp);
    sort(b+1,b+n+1,cmp);

    for (i=1;i<=n;i++)
    if (a[i].w>b[i].w)
    {
        printf("No\n");
        return 0;
    }
    bool f=false;
    for (i=1;i<n;i++)
        if (a[i+1].w<=b[i].w) f=true;
    if (f)
    {
        printf("Yes\n");
        return 0;
    }
    for (i=1;i<=n;i++)
        to[a[i].i]=b[i].i;
    int now=1;
    while (vis[now]!=1)
    {
        vis[now]=1;
        now=to[now];
    }
    for (i=1;i<=n;i++)
        if (vis[i]==0)
        {
            printf("Yes\n");
            return 0;
        }
    printf("No\n");
    return 0;
}

