A cosa ti serve sapere che sei alla fine della linea? Usa normalmente l'operatore >> per estrarre i primi due interi, quindi, sempre con lo stesso operatore, ripetendo l'estrazione in base ai dati appena acquisiti, acquisisci i due insiemi di numeri.
codice:
#include <iostream>
#include <fstream>
#include <new>
using namespace std;
int main()
{
    int m, k;
    int *a, *b;
    ifstream is;
    is.open("test.txt");
    if(is.fail())
    {
        cerr<<"Impossibile aprire il file.";
        return 1;
    }
    is>>m>>k;
    if(is.fail())
    {
        cerr<<"Errore durante la lettura del file.";
        return 2;
    }
    a = new int[m];
    b = new int[k];
    for(int c=0; c<m; c++)
    {
        is>>a[c];
        if(is.fail())
        {
            cerr<<"Errore durante la lettura del file.";
            return 3;
        }
    }
    for(int c=0; c<k; c++)
    {
        is>>b[c];
        if(is.fail())
        {
            cerr<<"Errore durante la lettura del file.";
            return 4;
        }
    }
    is.close();
    cout<<"m: "<<m<<" k: "<<k<<"\nA:";
    for(int c=0; c<m; c++)
        cout<<" "<<a[c];
    cout<<"\nB:";
    for(int c=0; c<k; c++)
        cout<<" "<<b[c];
    delete [] a;
    delete [] b;
    cin.ignore();
    return 0;
}